📜  C++程序的输出| 7套

📅  最后修改于: 2022-05-13 01:56:11.125000             🧑  作者: Mango

C++程序的输出| 7套

预测以下 C++ 程序的输出。

问题 1

class Test1 {
    int y;
};
  
class Test2 {
    int x;
    Test1 t1;
public:
    operator Test1() { return t1; }
    operator int() { return x; }
};
  
void fun ( int x)  { };
void fun ( Test1 t ) { };
  
int main() {
    Test2 t;
    fun(t);
    return 0;
}

输出:编译器错误
Test2 类中定义了两个转换运算符。因此 Test2 对象可以自动转换为 int 和 Test1。因此,函数调用 fun(t) 是模棱两可的,因为有两个函数 void fun(int) 和 void fun(Test1),编译器无法决定调用哪个函数。通常,转换运算符必须小心重载,因为它们可能会导致歧义。

问题2

#include 
using namespace std;
  
class X {
private:
  static const int a = 76;
public:
  static int getA() { return a; }
};
  
int main() {
  cout <

输出:程序编译并打印 76
一般在C++类声明中是不允许初始化数据成员的,但是静态const整型成员被区别对待,可以用声明来初始化。