编辑:谢谢大家。有很多很棒的信息要去看。我需要一段时间才能学会。
在10+多年与编程的不健康的罗曼史之后,我想我终于明白我的想法了。但我对他们还是不太满意。
我有一些相对简单的代码:
#include <iostream>
#include <string.h>
using namespace std;
class MyString
{
private:
char* buffer;
public:
//Constructor
MyString(const char* initString)
{
if(initString != NULL)
{
buffer = new char[strlen(initString)+1];
strcpy(buffer, initString);
}
else
buffer = NULL;
}
//Destructor
~MyString()
{
cout << "Invoking destructor, clearing up\n";
if (buffer != NULL)
delete [] buffer;
}
int GetLength()
{
return strlen(buffer);
}
const char* GetString()
{
return buffer;
}
};
int main()
{
MyString SayHello("Hello from String Class");
cout << "String buffer in MyString is " << SayHello.GetLength();
cout << " characters long\n";
cout << "Buffer contains: " << SayHello.GetString() << endl;
return 0;
}
为什么MyString
希望从第一个参数(在main()
中)创建一个指针?为什么不直接复制过去呢?还是使用操作员的地址?
我问错问题了吗?看不清什么东西?
非常感谢。希望问题是清楚的。
https://stackoverflow.com/questions/55576571
复制相似问题