c++ - 为什么我们不需要对象来存储字符串数据?

标签 c++ string class oop

在C++中,如果字符串是一个类,为什么我们不需要点运算符或对象来存储字符串中的数据?

经典字符串:

string str = "ABC";

为什么我们可以直接用""传递ABC而不是像那样做

string str;

str.data = "ABC";

但是我们需要使用对象来访问函数。 示例:

str.length();

我们为什么要这样做?

string 是一类特殊的类吗?

最佳答案

string str = "ABC"; 不是赋值。是建筑。具体来说,它调用带有 const char * 参数的 std::string 构造函数。

这和做一样

string str("ABC");

只是语法不同。

赋值也有效。你这样做:

string str;
str = "ABC";

另见:

Copy initialization

std::string constructors

std::basic_string::operator=

关于c++ - 为什么我们不需要对象来存储字符串数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644853/

相关文章:

C++ 如何从文件创建 byte[] 数组(我不是说逐字节读取文件)?

java - 如何在 100 秒后或调用一次后将字符串值返回 null?

c++ - Operator= 在 C++ 中重载

vba - 从用户窗体监视类事件

iphone - 以安全的方式共享代码 Objective-C

python - 如何测试我的代码

c++ - 添加两个整数的可变参数模板列表

c++ - 如何使用模板在 C++ 中创建不同的构造函数?

C++从char中删除子字符串

java - 对字符串的 Android Web 请求