2016-08-16 60 views
-1

我的任务是在类中创建一个对象,初始化它并输出(使用指向类的指针)。此代码完美编译,但输出不显示。我会很感激任何帮助,提前谢谢!对象指针不起作用

#include <iostream> 
#include <string> 

using namespace std; 

class family 
{ 
public: 
    void setWife(string w) 
    {w = wife;}; 
    string getWife() 
    {return wife;}; 
    void setHusband(string h) 
    {husband = h;}; 
    string getHusband() 
    {return husband;}; 
    void setSon(string s) 
    {s = son;}; 
    string getSon() 
    {return son;}; 
    void setDaughter1(string d1) 
    {d1 = daughter1;}; 
    string getDaughter1() 
    {return daughter1;}; 
    void setDaughter2(string d2) 
    {daughter2 = d2;}; 
    string getDaughter2() 
    {return daughter2;}; 
    double* getPointer() 
    {return &pointer;}; 
    void initialize() 
    { 
     setWife("Shirley Collin"); 
     setHusband("Donald Collin"); 
     setSon("Collin Collin"); 
     setDaughter1("Harriet Collin"); 
     setDaughter2("Hillary Collin"); 
    } 
    friend void output(family* Collin); 


private: 
    string wife; 
    string husband; 
    string son; 
    string daughter1; 
    string daughter2; 
    double pointer; 
}; 


void output(family* Collin) 
{cout << "Husband is " <<Collin->getHusband()<< endl; 
    cout << "wife is " << Collin ->getWife() << endl; 
    cout << "son is " << Collin->getSon() << endl; 
    cout << "daughter1 is " << Collin->getDaughter1() << endl; 
    cout << "daughter2 is " << Collin->getDaughter2()<< endl; 
}; 

int main() 
{family Collin; 
    Collin.initialize(); 
    family *pointer = new family; 
    output (pointer); 
    cin.ignore(); 

} 
+0

我猜你想'输出(Collin)上;'。 – songyuanyao

+1

开始一个更简单的类,让指针的东西完美工作,然后添加所有其他的东西。 – Beta

回答

1
family Collin; 
Collin.initialize(); 

此构造family类的一个实例,并与在initialize()方法定义的值进行初始化。

family *pointer = new family; 
output (pointer); 

此构造family类的第二实例,以任何方式不进行初始化,并调用output()方法中,为了显示该family类的完全未初始化的第二个实例中的内容。

这就是为什么这个程序没有产生有用的输出。

你可能要替换这些四行:

family *pointer=new family; 
pointer->initialize(); 
output(pointer); 
+0

伟大的,1和最后一串输出开始工作,我会尝试修理剩菜,谢谢! – Muresha