关于参数初始化列表和引用的问题
#include <iostream>
using namespace std;
class A
{
private:
const int i,j;
int &k;
public:
A(int a,int b,int x):i(a),j(b),k(x)
{
cout<<"i="<<i<<"\t"<<"j="<<j<<"\t"<<"k="<<k<<endl;
}
void output()
{
cout<<k<<endl;
}
};
void main()
{
int m=6;
A x(4,5,m);
x.output();//调用k的应用,值为随机???
}
问题是x.output()输出的是4199863,应该是一个随机值。而构造函数中输出的k值没有问题。
请大虾们帮助。
using namespace std;
class A
{
private:
const int i,j;
int &k;
public:
A(int a,int b,int x):i(a),j(b),k(x)
{
cout<<"i="<<i<<"\t"<<"j="<<j<<"\t"<<"k="<<k<<endl;
}
void output()
{
cout<<k<<endl;
}
};
void main()
{
int m=6;
A x(4,5,m);
x.output();//调用k的应用,值为随机???
}
问题是x.output()输出的是4199863,应该是一个随机值。而构造函数中输出的k值没有问题。
请大虾们帮助。
...全文
相关推荐
C++初始化成员列表.
C++语言中的初始化成员列表是一种非常有用的机制,它可以解决一些特殊的问题,提高效率,并且可以对const成员或引用类型的成员进行初始化。
关于C++类的成员初始化列表的相关问题
这在处理复杂的数据类型如引用、常量、带有参数的基类或成员类时尤其重要。本文将详细介绍何时以及为何需要使用成员初始化列表,并通过具体的例子来说明。
java 中数组初始化实例详解
但是,当我们在给这两个函数都添加一个非可变参数,问题就可以解决了。Java 中数组初始化和可变参数列表是两个非常重要的概念,它们在实际开发中发挥着非常重要的作用。
关于C++中构造函数初始化成员列表的总结
初始化列表的顺序: 初始化列表的顺序并不依赖于构造函数参数列表中的参数顺序,而是按照类中成员变量的声明顺序进行初始化。
C++初始化列表详解[代码]
例如,对于const成员变量和引用成员变量,由于它们必须在创建对象时就初始化且之后不能修改,因此必须使用初始化列表。


