主题:[讨论]发现C++语言一个秘密
cmdblock
[专家分:570] 发布于 2012-09-21 15:05:00
我发觉在有些情况下加;符号和不加,没有区别都编译通的过这是为什么?
#include <iostream>
using namespace std;
class a
{
public:
a(int k = 0){num = k;}
void show_1() {cout << num << endl;} // 这里没有;符号也可以
void show_2() {cout << num << endl;};
private:
int num;
};
int main(int argc, char const *argv[])
{
a ca(7);
ca.show_1();
ca.show_2();
return 0;
}
回复列表 (共8个回复)
沙发
eastcowboy [专家分:25370] 发布于 2012-09-23 17:14:00
有些地方可以允许“空语句”,也就是什么都不写,只写一个分号(分号表示语句的结束)。
比如:
printf("Hello!");;;;;; // 很多个分号,没有问题。
板凳
bruceteen [专家分:42660] 发布于 2012-09-24 08:36:00
// 这里没有;符号也可以
------ 这里本来就应该没有分号,你不能因为把它们写在同一行就认为它们是一体的
class a
{
;
;
void show_1() {}
;
;
};
3 楼
latentlong [专家分:0] 发布于 2012-10-11 16:58:00
受教了。。。
4 楼
hanqingaoxue [专家分:0] 发布于 2012-10-18 17:25:00
void show_2() {cout << num << endl;};嗯,这里的最后一个分号是空语句,跟void show_2() {cout << num << endl;}木有关系
5 楼
gyr100 [专家分:0] 发布于 2012-10-20 16:42:00
多个分号其实不就是多了一个空语句[em11]
6 楼
xiaomarge [专家分:1980] 发布于 2012-11-06 18:56:00
{}是块操作符,权限高于语句结束符;,有了}就不用;,很正常
7 楼
ssy871120 [专家分:0] 发布于 2012-11-14 12:46:00
受教了
8 楼
woaiaabbc [专家分:0] 发布于 2012-11-15 19:24:00
学习了………
我来回复