繁体   English   中英

使用函数 C++ 更改类对象

[英]Changing class object with function c++

如何使用函数更改类对象,例如“per.name”? 原型设计有必要吗? 函数调用? 这是通过值还是引用传递?

#include <iostream>
#include <string>
using namespace std; 


class Person {
    public:

    char* name; 
    int age;
    double weight;
    double height; 

    };

int main()
{ 
 Person per;
 per.name = "John"; //change per.name
 cout << per.name << endl;
 }

我想更改名字约翰。 这是作为副本制作的吗?

char* name; 允许将非存储const指向一些字符或NUL结束可变长度的文本。 因为它是非const ,所以 C++ 编译器不会让您将其指向不允许修改的文本,例如字符串文字(您的“John”)。

你最好加上...

#include <string>

...在您的文件之上并将name成员变量的定义更改为:

std::string name;

然后,它将存储您分配到Person对象实例中的字段的任何文本的副本。

(一些非常旧的 C++ 编译器确实允许将非const字符指针指向字符串文字以与早期的 C 标准兼容,并且当前的编译器有时仍会支持,如果使用命令行参数明确请求,并尝试“写入”修改文本的指针通常会导致程序在运行时崩溃。如果您使用的教科书或参考资料建议将char*指向字符串文字,请获得更好的现代参考。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM