C++的一些语法有问题
trouble with some syntax of C++
#include<iostream>
using namespace std;
class A {
public:
A(int ii = 0) : i(ii) {}
void show() { cout << "i = " << i << endl;}
private:
int i;
};
class B {
public:
B(int xx) : x(xx) {}
operator A() const { return A(x); }
private:
int x;
};
void g(A a)
{ a.show(); }
int main() {
B b(10);
g(b);
g(20);
getchar();
return 0;
}
在上面的代码中,任何人都可以解释一下这条线是什么
A(int ii = 0) : i(ii) {}
平均值以及如何输出程序
i = 10
i = 20
A(int ii = 0) : i(ii) {}
是类 A 的构造函数,构造函数的值为 ii
,并且初始化i
以ii
。
输出
B b(10);
g(b);
g(20);
在此代码中,g(20)
是传递类 B 的临时实例。
因为,类 B 的构造函数不是explicit
所以int
B
是可以的。
这是
声明构造函数以class A
A(int ii = 0) : i(ii) {}
这部分声明构造函数可以采用默认值为 0
的单个 int
参数。
A(int ii = 0)
这部分是使用参数 ii
中的值初始化成员变量i
。
i(ii)
A(int ii = 0) : i(ii) {}
是类 A 的构造函数,它需要一个参数ii
,在初始值设定项列表中,该参数被分配给i
。然后它的身体什么都不做。
等效地,您拥有:
A(int ii = 0) : i(ii) {
// do nothing
}
等效地 - 就结果而言 - 你有:
A(int ii = 0) {
i = ii;
}
相关文章:
- 我似乎对if/else的基本语句有问题:/
- 我在范围内未声明的错误类有问题
- 我的C++语言蛮力算法有问题
- 我关于函数"Assert"的C++代码有问题
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 模板<>模板<类型名 T> 语法有什么用?
- C++类中的友元函数有问题?
- 我对数组即 0x6dfe78 有问题
- 我对 std::unique(算法)C++有问题
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 这个模板为什么有问题?如何正确编译
- 我对 MyGraph 属性顶点名称和边权重有问题
- delete[]有问题,如何部分删除内存
- 在C++中使用exit()退出程序有问题吗
- 跳转到if(false)块有问题吗
- 当C++类函数参数之一是结构时,它们的语法有什么不同
- 此C 异常语法有什么问题(std :: runtime_error)
- 如果 else 语句中的 C++ 错误,我的语法有什么问题
- 线程函数未被调用.语法有什么问题吗
- C++的一些语法有问题