- 主题:静态成员问题
在类中声明了一个静态变量:static int a ;
在类外初始化,int 类名::a=1;,这里这个int不写可以吗?
--
FROM 183.198.70.*
再问一个问题,
class A {
}
A(string a ,int b):name(a),age(b){}
与下面这种写法
A(string a,int b){
name=a;
age=b;
}是等价的?
第一种写法感觉像函数调用啊。
--
FROM 36.143.165.*
btw:这是我家2.0在用我的账号登录提问,主要我不是cs专业,麻烦各位兄弟们帮帮他!
--
FROM 36.143.165.*
【 在 easior 的大作中提到: 】
: 这俩不等价,因为调用形参构造对象的时机不同
: 正确的应该采用第一种构造函数——形参列表形式
: 第二种构造时可能无法及时获得形参值
: ...................
第一种定义是规范的形式对吗?
--
FROM 36.143.165.*
【 在 z16166 的大作中提到: 】
: 对啊,就是不要用老式的语法了。用新的,避免出错
:
#include<iostream>
using namespace std;
class A
{
public:
static int a;
};
int a=1;
int main()
{
cout<<A::a<<endl;
return 0;
}
写成了这样,无语法错误,但还是编译通不过。
--
FROM 36.143.165.*
【 在 easior 的大作中提到: 】
: 这俩不等价,因为调用形参构造对象的时机不同
: 正确的应该采用第一种构造函数——形参列表形式
: 第二种构造时可能无法及时获得形参值
: ...................
如果是不定义形参,可以这样写吗? A( ):name( ),age( )
前面括号里是空的,后边括号里不用写0
--
FROM 36.143.165.*
【 在 easior 的大作中提到: 】
: :
: 把上面这行改成
: int A::a = 1;
天哪!您真是神欸
--
FROM 36.143.165.*
【 在 supproton 的大作中提到: 】
: 静态类Java才有,本身就是实例,而且一直存在。
超纲了...,C++没有这吧,估计能让人疯掉
--
FROM 36.143.165.*
【 在 z16166 的大作中提到: 】
: class A {
: public:
: static constexpr int a{1};
: ...................
开始去学习constexpr 关键字
--
FROM 36.143.165.*
在指针里,→与=有什么区别?比如:class A{private : int num;} A a; a.num=1; A *p=&a.num与 p→a.num有啥区别?
--
FROM 36.143.165.*