2016-08-16 3 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

:

당신은 아마 이러한 네 줄을 교체합니다. – 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

관련 문제