c++初学遇到的疑惑!!求高手解答
时间:2011-12-02
来源:互联网
#include<iostream>
#include<string>
using namespace std;
class text
{public:
text()
{
cout<<"这个实验能成功吗?"<<endl;
cin>>probably;
}
void show()
{
cout<<"这个实验成功!"<<endl;
}
private:
string probably;
};
int main()
{
text s1;
s1.show();
}
请问下(1) s1.show()和s1.show都能通过没有错误但一个能显示show函数的cout内容,而另一个不能??
(2)若把s1.show()改为text::show()为什么编译有错误了??而如果把text类中的show函数前的void改为static
text::show()又可以了,能输出cout内容了??
#include<string>
using namespace std;
class text
{public:
text()
{
cout<<"这个实验能成功吗?"<<endl;
cin>>probably;
}
void show()
{
cout<<"这个实验成功!"<<endl;
}
private:
string probably;
};
int main()
{
text s1;
s1.show();
}
请问下(1) s1.show()和s1.show都能通过没有错误但一个能显示show函数的cout内容,而另一个不能??
(2)若把s1.show()改为text::show()为什么编译有错误了??而如果把text类中的show函数前的void改为static
text::show()又可以了,能输出cout内容了??
作者: s_april_s 发布时间: 2011-12-02
s1.Show()是调用函数,si.show是类的一个成员而已,但据我的编译器,写“s1.show;”不能通过编译。
text::show()一般是类外完成函数体,用text::来说明show()函数是哪个类的成员,在类内没有必要。
改为static后,show()就是静态的了,静态变量归类所有,不归类的某一个具体对象,使用时需用text::来限定,表名是text类的。
text::show()一般是类外完成函数体,用text::来说明show()函数是哪个类的成员,在类内没有必要。
改为static后,show()就是静态的了,静态变量归类所有,不归类的某一个具体对象,使用时需用text::来限定,表名是text类的。
作者: nuaazdh 发布时间: 2011-12-02
能说说c++中静态函数调用和非静态函数调用的区别吗?[color=#008080][/color]
作者: s_april_s 发布时间: 2011-12-02
C++中类的静态成员函数属于整个类所有,不属于该类的某个具体的对象,在使用静态成员函数时要在函数名之前加上 类名:: 修饰符;另外,由于静态成员函数不属于类的对象,因此它不能直接操作类的普通成员。非静态成员函数是类的普通成员,它可以操作类的普通成员,在使用非静态成员函数之前,要定义一个该类的对象,通过对象调用非静态成员函数,调用时在函数名之前加上 对象名. 修饰符
作者: farmliver 发布时间: 2011-12-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28