回 帖 发 新 帖 刷新版面

主题:[讨论]发现C++语言一个秘密

我发觉在有些情况下加;符号和不加,没有区别都编译通的过这是为什么?

#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个回复)

沙发

有些地方可以允许“空语句”,也就是什么都不写,只写一个分号(分号表示语句的结束)。
比如:
printf("Hello!");;;;;; // 很多个分号,没有问题。

板凳

// 这里没有;符号也可以
------ 这里本来就应该没有分号,你不能因为把它们写在同一行就认为它们是一体的

class a
{
;
;
void show_1() {}
;
;
};

3 楼

受教了。。。

4 楼

 void show_2() {cout << num << endl;};嗯,这里的最后一个分号是空语句,跟void show_2() {cout << num << endl;}木有关系

5 楼


多个分号其实不就是多了一个空语句[em11]

6 楼

{}是块操作符,权限高于语句结束符;,有了}就不用;,很正常

7 楼

受教了

8 楼

学习了………

我来回复

您尚未登录,请登录后再回复。点此登录或注册