strings.h
来自「Thinking in C++ 2nd edition source code 」· C头文件 代码 · 共 40 行
H
40 行
//: C13:Strings.h
// From Thinking in C++, 2nd Edition
// at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// Simple string class
// Can only be built on the heap
#ifndef STRINGS_H_
#define STRINGS_H_
#include <cstring>
#include <iostream>
class String {
char* s;
String(const char* S) {
s = new char[strlen(S) + 1];
std::strcpy(s, S);
}
// Prevent copying:
String(const String&);
void operator=(String&);
public:
// Only make Strings on the heap:
friend String* makeString(const char* S) {
return new String(S);
}
// Alternate approach:
static String* make(const char* S) {
return new String(S);
}
~String() { delete s; }
operator char*() const { return s;}
char* str() const { return s; }
friend std::ostream&
operator<<(std::ostream& os, const String& S) {
return os << S.s;
}
};
#endif // STRINGS_H_ ///:~
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?