From: Arbuckle Kit Newsgroups: comp.os.msdos.djgpp Subject: Help w/String class and char* Date: 28 Oct 1997 14:28:38 GMT Organization: IDT Internet Services Lines: 75 Message-ID: <634sqm$pq9@nnrp1.farm.idt.net> NNTP-Posting-Host: u2.farm.idt.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk I have written a String class (reinventing the wheel can be fun) that overloads various operators as follows. When I try to use them, the compiler throws up wrrnings along the lines of 'operator == will use temporary' and 'initializing non const String& with rvalue'. I would greatly appreciate it if someone would tell me either what's wrong with my code or, if nothing, how to make the compiler shut up about it(there doesn't seem to be a switch for either wrning in the docs). Please reply via email. Thanks. /* ** String ** A text string ** Copyright(c) Daniel Arbuckle, 1997. ** All rights reserved. */ #ifndef DA_EXPED_STRING_HEADER #define DA_EXPED_STRING_HEADER #include //standard C has very good string operations class String //This class make string handling much easier than it is with char arrays. //I am not using the C++ standard library because I don't trust the GNU //implementation yet. { private: char* chars; int length; //the length of the string int size; //the size of the array void grow(); public: String(); String(char str); String(char const * str); String(char const * str, int end); String(String& str); ~String(); String subString(int len, int begin = 0); int find(String& sub); char* str(); //returns a pointer to the buffer, handle with care! //Safer not to use except immediatly after the call to str() //because the buffer may be moved. int strlen(); //the length of the char string returned by str() int bufsize(); //the length of the buffer returned by str() int hash(); //returns a hash of the string void append(char other); void append(char const * other); void append(String& other); void insert(char other, int where = 0); void insert(char const * other, int where = 0); void insert(String& other, int where = 0); void remove(int where, int count = 1); String operator + (char other); String operator + (char const * other); String operator + (String& other); String& operator = (char other); String& operator = (char const * other); String& operator = (String& other); friend bool operator == (String& a, String& b); }; #endif