+ -
当前位置:首页 → 问答吧 → c++初学遇到的疑惑!!求高手解答

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内容了??

作者: s_april_s   发布时间: 2011-12-02

s1.Show()是调用函数,si.show是类的一个成员而已,但据我的编译器,写“s1.show;”不能通过编译。
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

热门下载

更多