:: 这个符号的问题

chinese_FQ 2007-05-24 07:39:02
#include <iostream>
using namespace std;
class a
{
private:
int i,j;
public:

int w()
{
i=1;
j=2;
cout<<"i="<<i<<"j="<<j<<endl;
return 0;
}

};
int main()
{
b::w();// 这句为什么不行?难道一定要这样才行吗?b c; c.w();
return 0;
}
...全文
205 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinese_FQ 2007-05-25
  • 打赏
  • 举报
回复
你没看错,我打错了,把类a 改成b.
longshanks 2007-05-25
  • 打赏
  • 举报
回复
b是什么?
没声明,也没定义?
难道我看错了么???
pxxx123 2007-05-24
  • 打赏
  • 举报
回复
:: 表示作用域

静态变量才在它的作用域内,不在作用域内当让不能访问咯
chinese_FQ 2007-05-24
  • 打赏
  • 举报
回复
不对吧,静态方法不能对非静态变量进行操作吧
lidongri 2007-05-24
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
class a
{
private:
int i,j;
public:

static int w()//////////////////////
{
i=1;
j=2;
cout<<"i="<<i<<"j="<<j<<endl;
return 0;
}

};
int main()
{
b::w();
return 0;
}
Sco_field 2007-05-24
  • 打赏
  • 举报
回复
a b?
chinese_FQ 2007-05-24
  • 打赏
  • 举报
回复
4楼 你那个 b* c;c->w();也不对.
chinese_FQ 2007-05-24
  • 打赏
  • 举报
回复
改成 static int w(){} 也不对啊.
cmail 2007-05-24
  • 打赏
  • 举报
回复
类的非静态成员函数都要和对象绑定才能执行
celftj 2007-05-24
  • 打赏
  • 举报
回复
据说某些没有用到对象里面的非静态变量的函数也可以在没有对象时使用,但用法是这样:

b *c;
c->w();

但这个规范不规范很难说
celftj 2007-05-24
  • 打赏
  • 举报
回复
以你这个程序的情况是一定要这样才能用
celftj 2007-05-24
  • 打赏
  • 举报
回复
静态函数的才这样用.

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧