VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 933|回复: 4

[已解决]萌新求助:关于类的静态成员函数

[复制链接]
40_avatar_middle
最佳答案
0 
在线会员 发表于 2021-6-30 16:37:46 | 显示全部楼层 |阅读模式
最近在学习咱们VC驿站的实用C++新手入门教程的时候遇到了问题
想用公有类型的静态成员函数调用私有类型的静态成员变量。结果出现了类似于静态成员变量没有类外初始化的问题:无法解析的外部命令,无法解析的外部符号这样的错误。由于代码没标红,也不知道该如何修改

下面是我的代码:
这是在类的Student.h文件里的:
private:
        static string school;
public:
        static string  get_school(string a);

这是在Student.cpp文件里的
string Student::get_school(string a)
{
        school=a;
        return school;
}

这是在主函数里的
cout << Student::get_school("YJ Middle School")<<endl;

把这些代码注释掉以后程序就能运行成功了。我是在想是不是类似于静态成员变量需要在类外初始化,但是不知道咋改。求各位前辈看看。感谢感谢!!!!!!!
最佳答案
07_avatar_small
2021-6-30 18:14:46
没有调试,看描述,你应该需要在Student.cpp里加上std::string Student::school;




上一篇:关于CDC的颜色操作
下一篇:SetTemplate函数问题
07_avatar_middle
最佳答案
12 
在线会员 发表于 2021-6-30 18:14:46 | 显示全部楼层    本楼为最佳答案   
bestAnswer
没有调试,看描述,你应该需要在Student.cpp里加上std::string Student::school;
17_avatar_middle
最佳答案
41 
在线会员 发表于 2021-7-1 07:08:24 | 显示全部楼层
本帖最后由 yoobaby 于 2021-7-1 07:09 编辑
  1. string Student::get_school(string a)
  2. {
  3.         school=a;
  4.         return school;
  5. }
复制代码

你上面这段代码让难懂,你传a进去,然后其实返回的又是a,那有什么意义,如果你只是要类外初始化静态成员变量 ,这样写
  1. string Student::school = "xxxxxx";//类外初始化
复制代码
40_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-1 22:39:59 | 显示全部楼层
freehawkzk 发表于 2021-6-30 18:14
没有调试,看描述,你应该需要在Student.cpp里加上std::string Student::school;

感谢感谢!!豁然开朗!!!是我忘了在类外声明私有类型的静态成员变量了。光想着可能是静态成员函数的问题,忽略了这个啦哈哈哈萌新求助:关于类的静态成员函数
40_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-1 22:44:45 | 显示全部楼层
yoobaby 发表于 2021-7-1 07:08
你上面这段代码让难懂,你传a进去,然后其实返回的又是a,那有什么意义,如果你只是要类外初始化静态成员 ...

感谢帮助!!是我的疏忽。是萌新的练习,本来也没啥意义哈萌新求助:关于类的静态成员函数
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-28 12:59

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表