2013-12-02 4 views
0

У меня есть 2 класса.Вызов функции-члена другого класса

Class A 
{ 
    void printMe(); 
} 

каст Файл:

A::printMe(){ 
    cout<<"yay"; 
} 

Class B 
{ 
    void DoSomething(); 
} 

каст Файл

B::DoSomething(){ 

    A::printMe(); 
} 

Как создать объект класса А в классе B и использовать его для функции PrintMe();

литературы, но ответы не принимаются, и они не работали для меня HERE

+0

Показать ваш реальный код в корме компилятору и любые сообщения об ошибках, которые у вас есть. –

ответ

1

Предполагая, что вы хотите вызвать функцию printMe() члена на объект класса A:

B::DoSomething() { 
    A a; 
    a.printMe(); 
} 

Однако вам Кроме того, необходимо объявить функцию printMe() быть публичными:

class A { 
public: 
    void printeMe(); 
} 
+0

Ошибка: «A» не было объявлено в этой области. –

+0

@UmeshMoghariya: вам нужно определить «класс A», прежде чем вы сможете создать объект или вызвать функцию-член. Если это файл заголовка, включите его. Если вы просто пишете один исходный файл, убедитесь, что 'A' приходит до' B'. Все это должно охватываться вашей вводной книгой. –

+0

@MikeSeymour да, я использую заголовочный файл и включаю его в код. –

1

Первых й Вам необходимо исправить множество синтаксических ошибок:

// A.h 
class A { // not Class 
public:  // otherwise you can only call the function from A 
    void printMe(); 
};   // missing ; 

// B.h 
class B { // not Class 
public:  // probably needed 
    void DoSomething(); 
};   // missing ; 

// A.cpp 
#include "A.h"  // class definition is needed 
#include <iostream> // I/O library is needed (cout) 

void A::printMe() {  // missing return type 
    std::cout << "yay\n"; // missing namespace qualifier 
} 

// B.cpp 
#include "A.h"  // class definitions are needed 
#include "B.h" 

void B::DoSomething() { // missing return type 
    A a;     // make an object of type A 
    a.printMe();   // call member function 
} 
Смежные вопросы