int a(1)与 int a=1 的区别,前者我今天第一次看到这样赋初值

来源:百度知道 编辑:UC知道 时间:2024/06/25 21:42:31

前者是C++里面的用法,即调用int类的构造函数,在声明a的同时赋初值1.
如果你多看一些C++程序,就会看到在一些类的构造函数实现时,在参数列表和函数体之间会有类似的,像:a(10),b(20)这样的用法,就是给类的成员a,b赋初值.
比如
class A{
int a,b;
public:
A():a(1),b(2){};
......
};

a(1) 不属于标准C语言吧?是不是上面有相关宏定义的?

首先,前面的符号是能编译运行的。
只是他是一种相当于函数的定义:
int a(10); //返回值类型int
a=1000; //定义返回值为1000
printf("%d\n",a);//输出结果1000

int a(1)跟int a=1 功能一样的
只是前者是非常新(C++)的语法,他把int看做对象了

前者是C++的,是面向对象,其实int()是一个构造函数
后者就不用说了,C与C++都能用

c++和c