c++ - 我无法使用继承 setter 和 getter 返回 const char * 变量
问题描述
我可以在 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
,而不是在方法中创建局部变量
推荐阅读
- android - 如何从recyclerview到fragment
- c# - C# 关于 SpreadsheetLight 使用的几个问题
- json - Alexa Skill:播放音频导致“抱歉不知道”
- html - MJML 是否适用于 Oulook.com 和 Outlook 2016?
- javascript - jQuery验证在引导模式下不起作用
- java - 屏幕坐标干扰屏幕底部的栏
- windows - 在 Windows 10 上使用 jmeter GUI 使 .jmx 文件默认打开(双击文件)
- php - .htaccess 使用锚标记附加 URL Slugs
- python - 几秒钟后如何删除框架及其标签?
- python - 我怎样才能找到a的内容
使用 BeautifulSoup4 标记?.content 和 .string 不适用于此标签