c++ - 在 C++ 中,我们如何使用预先声明的类中的函数

标签 c++ class

为什么 getString() 函数不起作用。我应该怎么做?

class A;
class B;
{
    A* a;
    char* someFunction() {return a->getString();}
}
class A
{
    char* getString() {..} // This works fine
}

最佳答案

在您实际使用它的成员函数之前,您需要拥有类的定义。编译器需要知道什么属于该类。

这样做的方法是

  1. 提供对方法的适当访问(或使用 friend )
  2. 在类声明之外定义方法。

class A;
    class B
    {
        public:

        A* a;
       char * someFunction() ;
    };

class A
{
    public:
    char* getString() { } 
};

char* B::  someFunction() {return a->getString();}

关于c++ - 在 C++ 中,我们如何使用预先声明的类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46924122/

相关文章:

c++ - C++中如何实现优先级队列?

swift - 使用类的 init() 中声明的变量 - Swift 4

c++ - 用户定义类的构造函数不适用于 vector

javascript - 'this'在javascript中的对象内部未定义,通过另一个属性访问对象的属性

C++ - 如何从一个类的构造函数中初始化一个单独类的构造函数?

c++ - C++ 中的 ScopeGuard 是什么?

.net - 如何从纯 C 应用程序重用 .Net 程序集

c++ - 混淆 C++ "simple"带符号 & 的计算

c++ - 当缓存行大小通常为 64 字节时,为什么 sizeof std::mutex == 40

C++:如何在启动时创建类的集合