试图找出为什么我的成员初始化列表不工作

Trynig to figure out why my Member Initializer list doesnt work

本文关键字:初始化 列表 工作 成员 我的 为什么      更新时间:2023-10-16
#include<iostream>
using namespace std;
class a
{
    public:
        a():a2(1),
            b2(2),
            c2(3)
        {
            cout <<"waruupn";
        }
        ~a()
        {
            cout<<"Its over brahn";
        }

        void kappa()
        {
            cout << a2 <<endl;
        }
        void kappa1()
        {
            cout << b2 <<endl;
        }
        void kappa2()
        {
            cout << c2 <<endl;
        }
};
main ()
{
a ao;
a *lol=&ao;
//ao.kappa();
lol->kappa();
lol->kappa1();
lol->kappa2();
}

为什么不运行?我在a()处得到一个错误:a2(1)我写错什么了吗?它不是应该使a2=1,然后在调用void kappa时打印1吗?我对编程和c++相当陌生,所以请原谅我的低级错误。

您必须声明a2, b2c2字段来初始化和使用它们。

#include<iostream>
using namespace std;
class a
{
    // declaretion of fields
    int a2, b2, c2;
    public:
        a():a2(1),
            b2(2),
            c2(3)
        {
            cout <<"waruupn";
        }
        ~a()
        {
            cout<<"Its over brahn";
        }

        void kappa()
        {
            cout << a2 <<endl;
        }
        void kappa1()
        {
            cout << b2 <<endl;
        }
        void kappa2()
        {
            cout << c2 <<endl;
        }
};
// don't omit the return type of functions
int main ()
{
    a ao;
    a *lol=&ao;
    //ao.kappa();
    lol->kappa();
    lol->kappa1();
    lol->kappa2();
}

还要注意,c++中不能省略函数的返回类型。