gpt4 book ai didi

c++ - 我无法使用继承 setter 和 getter 返回 const char * 变量

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

我可以在 setter 函数中打印正确的值,但是当我尝试使用 getter 返回相同的变量时,没有输出。这是我的代码。有人知道我如何更正我的代码吗?

class Student {
public:
char age;
double height;
double gpa;

int getAge();
void setAge(int *);
protected:
const char * name;
};

class Male :Student {
public:
void setName(const char * s);
const char * getName();
};

void Male::setName(const char * s){
const char* name = s;
std::cout << name << std::endl;
}

const char* Male::getName() {
return name; //I can't return the value of variable name.
std::cout << name << std::endl;
}

void Student::setAge(int* c) {
age = *c;
}

int Student::getAge() {
return age;
}

int main() {
Student jason;
Male myName;
int edad = 30;
jason.height = 162;
jason.gpa = 1.5;

jason.setAge(&edad);
myName.setName("James");

std::cout << jason.height << "\n" << jason.getAge() << "\n" << jason.gpa << "\n" << std::endl;
system("pause");
return 0;
}

不知道为什么不能返回const char变量。 :(

最佳答案

void Male::setName(const char * s) {
name = s;
std::cout << name << std::endl;
}

需要将s设置为成员变量name,而不是在方法中创建局部变量

关于c++ - 我无法使用继承 setter 和 getter 返回 const char * 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50034651/

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