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