c++ - 如何从父类访问变量

标签 c++ class variables parent

如何从父类访问变量?我认为下面的代码可以做到这一点,但是当我尝试在 Controller.cpp 中打印出名称的值时,出现错误:

Member access into incomplete type 'TestApp'

TestApp.cpp

#include "cinder/app/AppNative.h"
#include "Controller.h"

using namespace ci;
using namespace ci::app;
using namespace std;

class TestApp : public AppNative
{
  public:
    void setup();
    void update();

    string name = "Parent";

    Controller controller;
};

void TestApp::setup()
{
    controller.setup(this);
}

void TestApp::update()
{
    controller.update();
}


CINDER_APP_NATIVE( TestApp, RendererGl )

Controller.h

#pragma once

class TestApp;

class Controller
{
    public:
        void setup(TestApp* parent);
        void update();
        TestApp* p;
};

Controller.cpp

#include "Controller.h"

void Controller::setup(TestApp* parent)
{
    p = parent;
}

void Controller::update()
{
    std::cout << p->name << std::endl;
}

最佳答案

这与父类无关。 TestApp 定义在 TestApp.cpp 中,它对 Controller.cpp 中的代码不可见。您需要将 TestApp 的定义移动到头文件(称为 TestApp.h),然后在 Controller.cpp 中移动 #include "TestApp.h"

关于c++ - 如何从父类访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20163516/

相关文章:

C++从函数调用的多个返回构建字符串 vector 的最佳方法

将方法结果存储为属性的 Pythonic 方式

css - 将 alpha channel 添加到在 css 变量上声明的十六进制颜色

c++ - “expected ')' before textIn”和“expected constructor, destructor or type conversion before '(' token”

c++ - 函数什么时候必须在 C++ 中返回引用

c++ - TTF_RenderText_Solid 错误

objective-c - ObjC 类对象可以符合协议(protocol)吗?

php - Symfony2 类的使用

javascript - 使用 JavaScript 进行多个左手赋值

javascript - 如何使用 document.form_name.element_name 变量