首页 > 试题广场 >

下列描述错误的是( )

[单选题]
在c++中,下列描述错误的是(        )
  • 在创建对象前,静态成员不存在
  • 静态成员是类的成员
  • 静态成员不能是虚函数
  • 静态成员函数不能直接访问非静态成员

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

   非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

   因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。

3.主函数是静态的。
程序运行的时候,静态成员已经加载在内存里面了,但是包含静态成员的对象共享这些静态成员
比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了
1:只有类的成员函数才能说明为虚函数;  
2:静态成员函数不能是虚函数;  
3:内联函数不能为虚函数;  
4:构造函数不能是虚函数;  
5:析构函数可以是虚函数,而且通常声明为虚函数
发表于 2017-08-03 10:28:37 回复(2)
程序运行的时候,静态成员已经加载在内存里面了,但是包含静态成员的对象共享这些静态成员
比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了
发表于 2017-05-11 12:40:28 回复(0)

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

   非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

   因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。

3.主函数是静态的。

发表于 2017-05-21 20:17:21 回复(0)

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

   非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

   因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。

3.主函数是静态的。
程序运行的时候,静态成员已经加载在内存里面了,但是包含静态成员的对象共享这些静态成员
比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了
1:只有类的成员函数才能说明为虚函数;  
2:静态成员函数不能是虚函数;  
3:内联函数不能为虚函数;  
4:构造函数不能是虚函数;  
5:析构函数可以是虚函数,而且通常声明为虚函数
发表于 2020-07-02 11:46:44 回复(0)

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

   非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

   因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。
静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。
3.主函数是静态的。
程序运行的时候,静态成员已经加载在内存里面了,但是包含静态成员的对象共享这些静态成员
比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了
1:只有类的成员函数才能说明为虚函数;  
2:静态成员函数不能是虚函数;  (在创建对象之前就已经确定了)
3:内联函数不能为虚函数; (编译时就要确定展开) 
4:构造函数不能是虚函数;  (对象都没有,怎么确定?)
5:析构函数可以是虚函数,而且通常声明为虚函数
发表于 2017-09-08 09:19:46 回复(2)
1:只有类的成员函数才能说明为虚函数; 
2:静态成员函数不能是虚函数; 
3:内联函数不能为虚函数; 
4:构造函数不能是虚函数; 
5:析构函数可以是虚函数,而且通常声明为虚函数
发表于 2017-06-25 12:17:11 回复(0)
静态的使用注意事项: 1.静态方法只能访问静态成员(包括成员变量和成员方法) 非静态方法可以访问静态也可以访问非静态 2.静态方法中不可以定义this,super关键字 因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。 3.主函数是静态的。 程序运行的时候,已经加载在内存里面了,但是包含的对象共享这些, 比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; 3:内联函数不能为虚函数; 4:构造函数不能是虚函数; 5:析构函数可以是虚函数,而且通常声明为虚函数 1 静态方法只能访问静态成员(包括成员变量和成员方法)兄弟这个说法不对,静态成员方法只是不能直接访问非静态成员但是间接可以的比如通过参数对象和引用 程序运行的时候, href="https://www.baidu.com/s?wd=%E9%9D%99%E6%80%81%E6%88%90%E5%91%98&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Yzn1mvn1m4mWwBPjnsrH610ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPWcdPHDLn1bYnj64njf3nj0Y" target="_blank">静态成员已经加载在内存里面了,但是包含 href="https://www.baidu.com/s?wd=%E9%9D%99%E6%80%81%E6%88%90%E5%91%98&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Yzn1mvn1m4mWwBPjnsrH610ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPWcdPHDLn1bYnj64njf3nj0Y" target="_blank">静态成员的对象共享这些 href="https://www.baidu.com/s?wd=%E9%9D%99%E6%80%81%E6%88%90%E5%91%98&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Yzn1mvn1m4mWwBPjnsrH610ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPWcdPHDLn1bYnj64njf3nj0Y" target="_blank">静态成员, 比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了 静态的使用注意事项: 1.静态方法只能访问静态成员(包括成员变量和成员方法) 非静态方法可以访问静态也可以访问非静态 2.静态方法中不可以定义this,super关键字 因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。 3.主函数是静态的。 静态的使用注意事项: 1.静态方法只能访问静态成员(包括成员变量和成员方法) 非静态方法可以访问静态也可以访问非静态 2.静态方法中不可以定义this,super关键字 因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。 3.主函数是静态的。 程序运行的时候,已经加载在内存里面了,但是包含的对象共享这些, 比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; 3:内联函数不能为虚函数; 4:构造函数不能是虚函数; 5:析构函数可以是虚函数,而且通常声明为虚函数 静态的使用注意事项: 1.静态方法只能访问静态成员(包括成员变量和成员方法) 非静态方法可以访问静态也可以访问非静态 2.静态方法中不可以定义this,super关键字 因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。 静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。 3.主函数是静态的。 程序运行的时候,已经加载在内存里面了,但是包含的对象共享这些, 比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; (在创建对象之前就已经确定了) 3:内联函数不能为虚函数; (编译时就要确定展开) 4:构造函数不能是虚函数; (对象都没有,怎么确定?) 5:析构函数可以是虚函数,而且通常声明为虚函数 所以这题a应该是对的吧 加粗的那句我咋觉得读的不通顺呢? 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; 3:内联函数不能为虚函数; 4:构造函数不能是虚函数; 5:析构函数可以是虚函数,而且通常声明为虚函数 构造函数不能被声明为虚函数,因为虚函数的调用是通过对象的虚函数表(vtable)来实现的,而在对象的构造过程中,虚函数表还没有被构建。 构造函数的主要目的是在创建对象时初始化对象的成员变量和执行其他必要的初始化工作。当创建对象时,编译器会根据对象的类型调用相应的构造函数,为对象分配内存并初始化其成员变量。由于构造函数在对象创建的过程中被调用,此时对象的虚函数表还没有被构建,因此无法通过虚函数表来调用构造函数。 另外,虚函数的调用是基于对象的动态类型,而构造函数的调用是基于对象的静态类型。在构造函数执行期间,对象的动态类型还没有完全确定,因为对象的所有成员变量和基类的构造函数尚未完成初始化。因此,在构造函数中使用虚函数也会导致不确定的行为。 总而言之,构造函数不能是虚函数,这是由于构造函数在对象创建的过程中被调用,此时对象的虚函数表还没有构建,并且构造函数的调用是基于对象的静态类型,而不是动态类型。 1.类的成员函数才能说明为虚函数 2.静态成员函数不能是虚函数 3.内联函数不能是虚函数 4.构造函数不能是虚函数 5.析构函数可以是虚函数,而且通常声明为虚函数 1.静态方法只能访问静态成员 静态成员函数不能直接访问非静态成员,非静态成员函数可以访问静态数据成员和非静态数据成员。 静态的使用注意事项: 1.静态方法只能访问静态成员(包括成员变量和成员方法) 非静态方法可以访问静态也可以访问非静态 2.静态方法中不可以定义this,super关键字 因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。 3.主函数是静态的。 程序运行的时候,已经加载在内存里面了,但是包含的对象共享这些, 比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了 1:只有类的成员函数才能说明为虚函数; 2:静态成员函数不能是虚函数; 3:内联函数不能为虚函数; 4:构造函数不能是虚函数; 5:析构函数可以是虚函数,而且通常声明为虚函数 对于静态成员,对象之间是共享的。
发表于 2025-03-26 23:21:41 回复(0)
构造函数不能被声明为虚函数,因为虚函数的调用是通过对象的虚函数表(vtable)来实现的,而在对象的构造过程中,虚函数表还没有被构建。 构造函数的主要目的是在创建对象时初始化对象的成员变量和执行其他必要的初始化工作。当创建对象时,编译器会根据对象的类型调用相应的构造函数,为对象分配内存并初始化其成员变量。由于构造函数在对象创建的过程中被调用,此时对象的虚函数表还没有被构建,因此无法通过虚函数表来调用构造函数。 另外,虚函数的调用是基于对象的动态类型,而构造函数的调用是基于对象的静态类型。在构造函数执行期间,对象的动态类型还没有完全确定,因为对象的所有成员变量和基类的构造函数尚未完成初始化。因此,在构造函数中使用虚函数也会导致不确定的行为。 总而言之,构造函数不能是虚函数,这是由于构造函数在对象创建的过程中被调用,此时对象的虚函数表还没有构建,并且构造函数的调用是基于对象的静态类型,而不是动态类型。
发表于 2023-08-18 15:47:11 回复(0)
1.类的成员函数才能说明为虚函数
2.静态成员函数不能是虚函数
3.内联函数不能是虚函数
4.构造函数不能是虚函数
5.析构函数可以是虚函数,而且通常声明为虚函数
发表于 2021-03-03 11:00:09 回复(0)
1.静态方法只能访问静态成员
发表于 2020-08-20 15:49:30 回复(0)
静态成员函数不能直接访问非静态成员,非静态成员函数可以访问静态数据成员和非静态数据成员。
编辑于 2019-07-10 09:13:56 回复(0)

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

   非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

   因为 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法中不可以出现this,super关键字。

3.主函数是静态的。
程序运行的时候,静态成员已经加载在内存里面了,但是包含静态成员的对象共享这些静态成员
比方说,A有一个静态成员public static int i;那么程序运行的时候,这个i就加载进内存了,A的所有对象的i变量都指向这个静态空间的i,也就是说创建对象之前,它就占空间了
1:只有类的成员函数才能说明为虚函数;  
2:静态成员函数不能是虚函数;  
3:内联函数不能为虚函数;  
4:构造函数不能是虚函数;  
5:析构函数可以是虚函数,而且通常声明为虚函数
发表于 2018-12-18 22:18:47 回复(0)
对于静态成员,对象之间是共享的。
发表于 2017-09-06 20:21:42 回复(0)