Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对象指针不存在';行不通_C++_Function_Class_Pointers - Fatal编程技术网

C++ 对象指针不存在';行不通

C++ 对象指针不存在';行不通,c++,function,class,pointers,C++,Function,Class,Pointers,我的任务是在类中创建一个对象,初始化它并输出(使用指向类的指针)。这段代码编译得很好,但输出没有显示出来。我真的很感激任何帮助,提前谢谢你 #include <iostream> #include <string> using namespace std; class family { public: void setWife(string w) {w = wife;}; string getWife() {return wife;};

我的任务是在类中创建一个对象,初始化它并输出(使用指向类的指针)。这段代码编译得很好,但输出没有显示出来。我真的很感激任何帮助,提前谢谢你

#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();

}
#包括
#包括
使用名称空间std;
阶级家庭
{
公众:
无效设置妻子(字符串w)
{w=妻子;};
字符串getfixer()
{返回妻子;};
无效设置(字符串h)
{丈夫=h;};
字符串gethurst()
{返回丈夫;};
无效设置(字符串s)
{s=son;};
字符串getSon()
{返回子;};
void setDaughter1(字符串d1)
{d1=子代1;};
字符串getDaughter1()
{返回子嗣1;};
void setDaughter2(字符串d2)
{daughter2=d2;};
字符串getDaughter2()
{返回子嗣2;};
double*getPointer()
{return&pointer;};
void initialize()
{
赛特夫人(“雪莉·柯林”);
塞瑟夫(“唐纳德·科林”);
塞森(“柯林柯林”);
setDaughter1(“Harriet Collin”);
setDaughter2(“希拉里·柯林”);
}
友元无效输出(族*Collin);
私人:
妻子;
丈夫;
弦子;
弦子1;
弦子2;
双指针;
};
空心输出(族*Collin)
{cout
这将构造
族的一个实例
类,并使用
initialize()
方法中定义的值对其进行初始化

family *pointer = new family;
output (pointer);
这将构造
类的第二个实例,不以任何方式对其进行初始化,并调用
output()
方法,以显示此
类的完全未初始化的第二个实例的内容

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

您可能希望将这四行替换为:

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

我想您需要
输出(&Collin);
。从一个简单得多的类开始,让指针的内容完美地工作,然后添加所有其他内容。太好了,1和最后一个输出字符串开始工作,我将尝试修复剩余内容,谢谢!
family *pointer=new family;
pointer->initialize();
output(pointer);