Mail Archives: djgpp/1997/10/28/14:46:42
From: | Arbuckle Kit <djarb AT IDT DOT NET>
|
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
|
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 <string.h> //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
- Raw text -