gpt4 book ai didi

c++ - 使用构造函数初始化字符串指针

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:02 25 4
gpt4 key购买 nike

我的代码有问题。我有点难过。我有一个数据成员,它是一个指向字符串类型的指针。我使用构造函数作为该指针的默认初始值设定项,然后当我在主函数中调用对象时,初始化指针指向存储字符串的内存地址并打印内容。那是应该发生的事情,但我无法让程序运行。有人可以告诉我哪里出错了吗?

#include<iostream>
#include<string>

using namespace std;

class NoName{
public:
NoName(string &sName("Alice In Wonderland") ){};
private:
string *pstring;
};

int main(){
//the constructor will be automatically called here once a object is created
// and the string "Alice in Wonderland" will appear on the screen
return 0;
}

最佳答案

只需简单地使用一个std::string 成员并在 Member initializer list 中初始化它:

 private:
string mstring;

public:
NoName():mstring("Alice In Wonderland"){}

您还可以让构造函数接收一个参数而不是对字符串进行硬编码,并让用户在运行时传递该字符串:

NoName(std::string str):mstring(str){}

您不需要指针。通过使用指向 std::string 的指针,您可以抵消 std::string 提供的隐式手动内存管理的优势。

关于c++ - 使用构造函数初始化字符串指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14776674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com