Posted By: kurt (kurt) on 'CZprogram' Title: C++ const Date: Thu Sep 20 17:07:38 2001 nevim si rady s nasleduji konstrukci class holder { char *ptr; public: holder(char *pp) { ptr = strdup(pp); } }; class const_holder { const char *ptr; public: const_holder(const char *pp) { ptr = (pp); } }; class Ptr { char * data; public: Ptr() { data = strdup("test test"); } holder getdata() { return data; } const_holder getdata() const { return data; } }; main() { Ptr p; const_holder x = p.getdata(); } Pokus o preklad konci s chybou g++ a.cc -o a a.cc: In function `int main()': a.cc:36: conversion from `holder' to non-scalar type `const_holder' requested nevim, jakym zpusobem prekladac prinutit aby vzal tu const metodu getdata. v stl je toho plno a funguje to ikdyz mi neni jasny rozdil mezi tim, co delam ja a co je v STL. typicky je tam iterator begin() { return ... } const_iterator begin() const { return ... (totez co ve fci vys); } ale vyraz typedef vector<int> V; V vect; V::const_iterator = vect.begin(); // funguje bez problemu dik za napady, libor V::con