gpt4 book ai didi

c++ - 一些 C++ 语法的问题

转载 作者:行者123 更新时间:2023-11-28 02:41:30 24 4
gpt4 key购买 nike

    #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 所以 intB 是可以的。

关于c++ - 一些 C++ 语法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com