gpt4 book ai didi

c++ - 为什么在C++中使用字符串时没有输出?

转载 作者:行者123 更新时间:2023-12-02 10:02:31 25 4
gpt4 key购买 nike

class A{
private : string a[3];
public : A();
void ShowA();
}

A::A(){ string a[3] = {"aa","bb","cc"} }
void A::ShowA(){
for(int x=0;x<=2;x++){
cout<< a[x];
}
}
int main(){
A a;
a.ShowA();
return 0;
}

在这段代码中,我认为输出为aabbcc,但没有任何输出。仅存在空白。
你能告诉我为什么会发生以及如何解决它。
干杯们。

最佳答案

正如评论所告诉的那样,您是在构造函数内部创建局部变量a,而不是设置属性a的值。您可以在member initializer list中设置a的值。

代码变成

#include <iostream>
#include <string>

using namespace std;

class A {
private:
string a[3];

public:
A();
void ShowA();
};

A::A() : a{"aa"s, "bb"s, "cc"s} {}

void A::ShowA() {
for(int x = 0; x <= 2; x++) {
cout << a[x] << std::endl;
}
}
int main() {
A a;
a.ShowA();
return 0;
}

注意:“aa”,“bb”和“cc”字符串后面的“s”是 string literal。在这种情况下,由于编译器知道您正在创建 std::string对象数组,因此实际上并没有必要。

关于c++ - 为什么在C++中使用字符串时没有输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61942066/

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