2016-09-20 41 views
-3

我是新来的C++编程,我需要你的帮助:C++我要像做Class1.Class2.Fct()

比方说,我有一个类 - Class1的。是否有可能有(至少)一个函数返回(例如)一个整数的另一个类(Class2)?下面是我想才达到一个例子:

std::cout << "I did it: " << Class1.Class2.ReturnINTEGER() << std::endl; 

我需要的代码以与GNU G ++编译器兼容。谢谢 :)。

+2

我认为你需要一个[本好书(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list )让你开始如何做到这一点。 – Rakete1111

+2

您不会在'.'之前放置类名,而是将类型为类的变量。 – Barmar

+1

'.'从类中的成员名称中分离变量(或返回结构或类对象的其他表达式)。 – Barmar

回答

0

是的,它可以做到。让我们剖析或重建。 首先得到Class1.Class2,我们需要有一个类成员Class2。而Class2需要有一个名为Fct的成员。

这是一个实现:

struct Class2_Object 
{ 
    void Fct(void); 
}; 

struct Class1_Object 
{ 
    Class2_Object Class2; 
}; 

Class1_Object Class1; 
Class1.Class2.Fct(); 
+0

这一个帮助 - 非常感谢:)) –

+0

请不要使用'void'来指定不应该传递给'Fct'的参数,这是完全没有必要的。 – Rakete1111

+0

@ Rakete1111:虽然在C++ *中是不必要的*,但它是允许的,并且可以从C语言中结转。目前我正在用两种语言进行编程,但在不同的项目上。 –

1
#include <iostream> 
using namespace std; 
class Two 
{ 
public: 
    int toReturn; 
    Two() 
    { 
     toReturn=0; 
    } 

    int returnValue() 
    { 
     return toReturn; 
    } 
}; 

class One 
{ 
public: 
    Two foo; 
}; 

int main() 
{ 
    One bar; 
    int toPrint=bar.foo.returnValue(); 
    cout << toPrint << endl; 
} 
+0

好吧 - 我试图解决错误 - 在这里: –

+0

#include using namespace std; 二级 { public: int toReturn; 两个() { toReturn = 0; } int returnValue() { return toReturn; } }; class One { public: Two foo; }; int main() { One bar; int toPrint = bar.foo.returnValue(); cout << toPrint << endl; } –

相关问题