C++ C++;:错误:获取临时[-fppermissive]的地址
所以基本上我有一个错误:取临时地址,我不知道为什么 我试图简化代码,只关注问题本身。该错误发生在地址数组上 main.cpp有以下几行:C++ C++;:错误:获取临时[-fppermissive]的地址,c++,C++,所以基本上我有一个错误:取临时地址,我不知道为什么 我试图简化代码,只关注问题本身。该错误发生在地址数组上 main.cpp有以下几行: CPerson Student1("Test1", "street1.", "15a", 12045, "Berlin", 15, 9, 1989); CPerson Student2("Test2", "street2", &q
CPerson Student1("Test1", "street1.", "15a", 12045, "Berlin", 15, 9, 1989);
CPerson Student2("Test2", "street2", "27", 29031, "Milan", 27, 5, 1991);
CPerson Student3("Test3", "street3", "3-5", 12345, "Paris", 3, 11, 1987);
CPerson Student4("Test4", "street4", "23", 19885, "Tokyo", 19, 7, 1985);
CPerson *Studenten[4] = { &Student1, &Student2, &Student3, &Student4 };
CAddress *Adressen[4] = { &(Student1.getAddress()), &(Student2.getAddress()),
&(Student3.getAddress()), &(Student4.getAddress()) }; //Error occurs here
caddress.hpp:
class CAddress
{
public:
CAddress() = default;
void print() const;
friend class CPerson;
~CAddress(){};
private:
std::string Street;
std::string HouseNr;
unsigned Zipcode;
std::string City;
};
CPerson.hpp
class CPerson
{
public:
CPerson() = default;
CPerson(std::string m_Name, std::string m_Street,
std::string m_HouseNr, unsigned m_Zipcode,
std::string m_City, int m_Day, int m_Month, int m_Year);
CAddress getAddress();
void print() const;
~CPerson(){};
private:
unsigned ID;
std::string Name;
CAddress Address;
CDate Birthday;
};
CPerson.cpp
CPerson::CPerson(
string m_Name,
string m_Street,
string m_HouseNr,
unsigned m_Zipcode,
string m_City,
int m_Day, int m_Month, int m_Year)
{
Name = m_Name;
Address.Street = m_Street;
Address.HouseNr = m_HouseNr;
Address.Zipcode = m_Zipcode;
Address.City = m_City;
Birthday.Day = m_Day;
Birthday.Month = m_Month;
Birthday.Year = m_Year;
}
CAddress CPerson::getAddress()
{
return this->Address;
}
我试图删除数组上的指针和数组元素上的地址,但它工作正常,但我真正想要的是绕过它,保持main不变。
CAddress CPerson::getAddress()
返回此->地址的副本,因此它是一个临时对象。制作Daclariationconst CAddress&CPerson::getAddress()
@S.M.这看起来像一个答案:)@cigien这个问题不值得回答,它是@S.M的副本。如果你认为它是一个副本,那么你能投票关闭它吗?这将避免多余的答案被发布。让班级做你想做的不是问题,而是你想在main
中做什么?为什么要存储指向对象成员的指针?