如果你行,请进!

GhostFromHeaven 2010-01-27 05:35:09
不运行,写结果。(运行后写的,请走开)
#include <iostream>
using namespace std;
long x = 1, y = x + 5;
class A{
public:
long x;
static long &y;
operator long (){return x+y;}
A & operator ++(){x++;y++;return *this;}
A(long x=::x+3,long y=::y+5){A::x=x;A::y=y;}
};
long &A::y=::y;
int main(void)
{
A a,b(a),c(3,7);
long i,&m=i,A::*p=&A::x;
cout<<(i=A::y)<<endl;
cout<<(i=b.x)<<endl;
cout<<(i=b.*p)<<endl;
cout<<(i=::y+A(4))<<endl;
cout<<(i=b+a)<<endl;
cout<<(i=++ ++a)<<endl;
system("pause");
return 1;
}
...全文
623 73 打赏 收藏 转发到动态 举报
写回复
用AI写文章
73 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostFromHeaven 2010-01-28
  • 打赏
  • 举报
回复
华科机院?
[Quote=引用 18 楼 mstlq 的回复:]
引用 14 楼 ghostfromheaven 的回复:
引用 9 楼 ghostfromheaven 的回复:
引用 5 楼 cismylife 的回复:
引用 2 楼 dlevel 的回复:
operator long (){return x+y;}
Mark

转换操作符,今天刚看了
今天考的

C++期末考试


你们的老师出题不够严谨,想考别人反而暴露了自己在某方面的不足,严谨的题目应该是这样的

C/C++ code
#include<iostream>usingnamespace std;long x=1;long y= x+5;//mark;class A{public:long x;staticlong&y;operatorlong (){return x+y;}
A&operator++(){x++;y++;return*this;}
A(long x=::x+3,long y=::y+5){A::x=x;A::y=y;}
};long&A::y=::y;int main(void)
{
A a;
A b(a);//mark A c(3,7);//marklong i,&m=i,A::*p=&A::x;
cout<<(i=A::y)<<endl;
cout<<(i=b.x)<<endl;
cout<<(i=b.*p)<<endl;
i= A(4);//mark cout<<(i+=::y)<<endl;/mark
cout<<(i=b+a)<<endl;
cout<<(i=++++a)<<endl;
system("pause");return1;
}
[/Quote]
red_berries 2010-01-28
  • 打赏
  • 举报
回复
路过
xiaozhuhaoa 2010-01-28
  • 打赏
  • 举报
回复
13楼写的真辛苦
pengzhixi 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 taodm 的回复:]
这个,在cpu的超线程等技术下,结论别下太早了

[/Quote]

愿请教taodm,我只知道超线程技术是CPU取代了操作系统一部分功能。会自己执行一些准备好的线程,除非cache缓存需要换页。但是不知道对全局变量的初始化顺序有哪些影响
温暖阳光236 2010-01-28
  • 打赏
  • 举报
回复
还可以
Dolphin_001 2010-01-28
  • 打赏
  • 举报
回复
逻辑复杂凌乱,不够通俗易懂,依赖编译器,不具备可移植性。
这样的代码就是最好的反面教材。
taodm 2010-01-28
  • 打赏
  • 举报
回复
这个,在cpu的超线程等技术下,结论别下太早了。
[Quote=引用 28 楼 pengzhixi 的回复:]
引用 23 楼 stakeholder 的回复:
long x = 1, y = x + 5;
这样的代码是有问题的,难道不知道全局变量的初始化顺序是不确定的吗?


同一个文件里面的初始化顺序是确定的。
[/Quote]
pengzhixi 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 stakeholder 的回复:]
long x = 1, y = x + 5;
这样的代码是有问题的,难道不知道全局变量的初始化顺序是不确定的吗?
[/Quote]

同一个文件里面的初始化顺序是确定的。
traceless 2010-01-28
  • 打赏
  • 举报
回复
做个俯卧撑路过。。。
shuilongyin_00 2010-01-28
  • 打赏
  • 举报
回复
带枪的来过……

分就免了!这杠子抬的……
taodm 2010-01-28
  • 打赏
  • 举报
回复
打酱油路过。
email_zixuan 2010-01-28
  • 打赏
  • 举报
回复
无聊的东西
GhostFromHeaven 2010-01-28
  • 打赏
  • 举报
回复
如果他们都是错的,你就是对的
不过,我不得不承认,他们大部分是对的。
我们共勉吧……
[Quote=引用 66 楼 mskmc_mc 的回复:]
#include <iostream>
using namespace std;
//long x = 1, y = x + 5; 这里从右往左读,Y引用了未定义的X 
//应该为
long x=1;
long y=x+5;

class A{
public:
    long x;
    static long &y;
    operator long (){return x+y;}
    A & operator ++(){x++;y++;return *this;}
    A(long x=::x+3,long y=::y+5){A::x=x;A::y=y;}//缺省情况下A(long x=1+3,long y=6+5) {A::x=4;A::y=11;}
};
long &A::y=::y;//静态类成员是在完整类域后解译的 现在Y是全局Y的别名,
int main(void)
{
    A a,b(a),c(3,7);//类对象先执行构造,a(4,11),b调用了缺省拷贝构造函数:b(4,11)其中b.y与a.y指向同一地址。c(3,7)
    long i,&m=i,A::*p=&A::x;//P是指向类成员X的指针
    cout < <(i=A::y) < <endl;//6
    cout < <(i=b.x) < <endl;//4
    cout < <(i=b.*p) < <endl;//4
    cout < <(i=::y+A(4)) < <endl;//6
    cout < <(i=b+a) < <endl;//6,这里 应该是错误的
    cout < <(i=++ ++a) < <endl;//6,这里应该是错误的
    system("pause");
    return 1;
}


6
4
4
6
6
6

[/Quote]
z569362161 2010-01-28
  • 打赏
  • 举报
回复
这种问题真的没有运行和回答的必要。

既然我不答。就是按照LZ所说。

我不行,走了。

最后说一句。你的分真不行啊!
GhostFromHeaven 2010-01-28
  • 打赏
  • 举报
回复
我先预定您的前十本著作。
[Quote=引用 64 楼 dontkissbossass 的回复:]
汗,还以为中科院院士呢。是啊,中国人就会抄书,然后说自己写的。所以现在大家都看翻译的。那才是经典
[/Quote]
GhostFromHeaven 2010-01-28
  • 打赏
  • 举报
回复
I enjoy losing face.[Quote=引用 68 楼 z569362161 的回复:]
结帖子拉
[/Quote]
stakeholder 2010-01-28
  • 打赏
  • 举报
回复
long x = 1, y = x + 5;
这样的代码是有问题的,难道不知道全局变量的初始化顺序是不确定的吗?
traceless 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 68 楼 z569362161 的回复:]
结帖子拉
[/Quote]
鬼也是你,神也是你。。。。==!
z569362161 2010-01-28
  • 打赏
  • 举报
回复
结帖子拉
z569362161 2010-01-28
  • 打赏
  • 举报
回复
你们这些人 。

人家已经被你们说了一天了。

自己已经谦虚地说是学习来的。

还有人来胡说。我都瞧不进去了。

谁在说人家,自己就变成垃圾了。
加载更多回复(53)

64,641

社区成员

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

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