如何全局创建对象并使用该对象访问全局范围内的公共成员函数?

时间:2019-01-27 13:39:36

标签: c++

我正在尝试全局创建对象,并尝试在构造函数的帮助下访问公共成员函数。但这显示了错误,任何人都可以帮我吗?

在这里,我创建了一个名为base的类,并尝试通过创建构造函数来访问全局范围内该类的公共成员函数。

    #include <iostream>
    using namespace std;


    class base
    {
        void privatef()
        {
            cout<<"This is function from private scope\n";
        }
        public:
        void publicf()
        {
            cout<<"This is function from public scope\n";
        }

        protected:
        void protectedf()
        {
            cout<<"This is function from protected scope\n";
        }
    };

    base()
    {
            publicf();
            //privatef();
            //protectedf();
    }

    base d;

    class derived :public base
    {
        public:
        derived()
        {
            //privatef();
            publicf();
            protectedf();
        }
    };


    int main()
     {
        derived d1 ;
        return 0;
     }
  

错误:   错误:“)”令牌之前的预期unqualified-id      基础()           ^

1 个答案:

答案 0 :(得分:1)

那是正确的形式

#include "stdafx.h"
#include <iostream>
using namespace std;


class base
{

    void privatef()
    {
        cout << "This is function from private scope\n";
    }
public:
    //Declare it at least first & then define it outside
    base();
    void publicf()
    {
        cout << "This is function from public scope\n";
    }

protected:
    void protectedf()
    {
        cout << "This is function from protected scope\n";
    }
};

base::base()
{
    publicf();
    //privatef();
    //protectedf();

}

base d;

class derived :public base
{
public:
    derived(){

        //privatef();
        publicf();
        protectedf();
    }
};


int main()
{
    derived d1;
    return 0;
}