主题:[讨论]发现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				
				学习了………
							 
									
			
我来回复