首页 > 试题广场 >

C++语言中,有关类的初始化叙述正确的是()

[不定项选择题]
C++语言中,有关类的初始化叙述正确的是()
  • 静态函数中不能出现this指针
  • 可以在类定义时,对对象直接初始化
  • 一般数据类型可以在类的外部进行初始化
  • 静态数据类型可以在类的外部进行初始化
推荐
A:静态函数属于类本身,不与类绑定,因此不能用this指针。A选项正确。
B:在类定义时,无法使用构造函数,因而无法完成对象的初始化
C:一般成员变量需要在类内进行初始化
D:静态成员变量必须在类外初始化,静态成员常量在类中初始化。D选项正确。
编辑于 2016-08-07 13:16:04 回复(15)
静态函数中不能出现this指针//或许是我想多了,,我认为一个实例化的对象.this->他的方法,也是可行的
可以在类定义时,对对象直接初始化//应该是在实例定义的时候
一般数据类型可以在类的外部进行初始化
静态数据类型可以在类的外部进行初始化//数据类型,不是变量
发表于 2016-11-15 10:30:29 回复(1)
求解释:
D选项大神们能解释一下吗?貌似它只能在外边初始化
#include<iostream>
using namespace std;
class  A{
public:
	int x1;
	const int x2;
	//不能直接初始化x3
	const static  int x3;
	static int x4;
public:
	//不能在构造函数中初始化x3
	A(int y):x2(y)
	{
		x1=1;
	}
	void func1() const
	{
		;
	}

};
//貌似只能在外面初始化
const int A::x3=1;
int A::x4=0;
int main()
{
	return 0;
}

发表于 2015-10-15 10:58:05 回复(2)
完美的避开了所有的答案
发表于 2017-07-18 11:45:00 回复(0)
AD
静态成员变量必须在类外初始化,静态成员常量在类中初始化
编辑于 2015-10-14 21:46:17 回复(3)
A:静态函数属于类本身,不与类绑定,因此不能用this指针。A选项正确。
B:在类定义时,无法使用构造函数,因而无法完成对象的初始化
C:一般成员变量需要在类内进行初始化
D:静态成员变量必须在类外初始化,静态成员常量在类中初始化。D选项正确。
发表于 2017-09-04 15:27:42 回复(0)
静态成员变量必须在类外初始化;int型静态成员常量可以在类内初始化
发表于 2016-06-13 10:07:39 回复(0)
struct A{
... ...
}  aa,bb;
这B不行吗?
发表于 2021-03-07 09:28:38 回复(0)
静态常量可不可以在内部初始化,这个跟编译器支持有关,即使支持也只对整数常量。 static是类的,构造函数是对象的,所以不能在构造函数中初始化。const static仍然是static
发表于 2017-04-15 14:42:00 回复(0)
类的定义是指cpp文件中定义,不是指实例化
发表于 2016-09-18 09:17:18 回复(0)
这里的B,不敢苟同.对象实例化才会调用构造函数.
class Value
{
    public:
    Value(int _val):m_val(_val){}
    int m_val;
};

class Test
{
    public:
    Test():m_value(2){}
    Value m_value;//Value m_value(2);这样也行

};

编辑于 2022-10-04 08:59:08 回复(0)
1.静态常量整型变量在类内初始化
2,常量,引用变量在初始化列表里初始化。
3.静态变量,静态常量非整型变量在类外初始化,且不带static关键字
4.静态变量是属于类的,而不是属于对象的,因此没有this指针,不能在构造函数里初始化。


发表于 2023-10-13 16:37:36 回复(0)
C:这里说的类内初始化时啥意思?定义类的时候吗?
D:难道不是必须在外部初始化?
发表于 2022-06-16 14:53:55 回复(0)
A:静态函数属于类本身,不与类绑定,因此不能用this指针。A选项正确。
B:在类定义时,无法使用构造函数,因而无法完成对象的初始化
C:一般成员变量需要在类内进行初始化
D:静态成员变量必须在类外初始化,静态成员常量在类中初始化。D选项正确
发表于 2021-11-18 16:08:36 回复(0)
静态函数属于类本身但不与类绑定。不用说明对象再调用。 静态成员变量必须在类外初始化, 静态成员常量在类中初始化。 ''' #include using namespace std; class Point { private: int x,y; static int set; public: Point():x(0),y(0){} Point(int a,int b):x(a),y(b){} static void GetPoint(){cout&lt; &lt;&lt;&quot; &quot;;} void ShowPoint(){cout&lt; &lt;&lt;&quot; &quot;&lt; }; int Point::set=0; int main() { Point::GetPoint(); //call GetPoint() without define an object //Point::ShowPoint(); //wrong ShowPoint() is not static Point point(3,4); point.ShowPoint(); return 0; } '''
编辑于 2021-04-02 18:50:50 回复(0)
还以为说的it a=10
发表于 2020-08-18 11:27:52 回复(0)

我就想问一下C选项有错误吗?

发表于 2020-03-30 20:09:11 回复(0)
对于A选项:
当调用一个非静态成员函数的时候,系统会把对象的起始地址赋给成员函数的this指针。而静态成员函数并不属于某一个对象,它与任何对象都无关,因此静态成员函数没有this指针。
发表于 2019-01-22 10:41:16 回复(0)
做个笔记,备份下,来源一楼~ A:静态函数属于类本身,不与类绑定,因此不能用this指针。A选项正确。 B:在类定义时,无法使用构造函数,因而无法完成对象的初始化,类还没有定义完,不能初始化对象。 C:一般成员变量需要在类内进行初始化 D:静态成员变量必须在类外初始化,静态成员常量在类中初始化。D选项正确。
发表于 2018-10-25 09:36:24 回复(0)
A:静态函数属于类本身,不与类绑定,因此不能用this指针。A选项正确。
B:在类定义时,无法使用构造函数,因而无法完成对象的初始化
C:一般成员变量需要在类内进行初始化
D:静态成员变量必须在类外初始化,静态成员常量在类中初始化。D选项正确。
发表于 2018-08-02 10:14:14 回复(0)
类成员函数内部属于类内部
发表于 2018-03-04 22:26:00 回复(0)