gpt4 book ai didi

c++ - 我不明白如何将变量从一个类中的方法传递和检索到另一个类中的其他方法

转载 作者:行者123 更新时间:2023-11-27 23:21:54 25 4
gpt4 key购买 nike

我正在研究面向对象的 C++ 程序,但我有点吃力。我正在尝试创建一个程序来演示默认和非默认构造函数和指针的使用。我正在尝试先执行默认构造函数。

所以我只能在一个方法中存储和检索局部变量。但现在我必须将值传递给其他类(我想我必须),然后再次检索信息但稍作修改。

我可以像以前一样将对象初始化为一个类,但是当我尝试检索对象时,它基本上只检索到空白空间。如何正确地将对象传递给另一个类中的方法,然后再取回它?

有什么建议吗?

图书.cpp

#include <iostream>
#include <sstream>
using namespace std;

#include "Book.h"

Book::Book()
{
}

void Book::setTitle(string title)
{
this->title = title;
}

void Book::setAuthorName(string first, string last)
{
Author author;

author.setFirstName(first);
author.setLastName(last);
}


void Book::setPrice(double price)
{
this->price = price;
}

string Book::convertDoubleToString(double number)
{
return static_cast<ostringstream*>( &(ostringstream() << number) ) -> str();
}

string Book::getBookInfo()
{
stringstream ss;
Author author;

ss << title << endl << author.getFullName() << endl << "$" << convertDoubleToString(price) << endl;

return ss.str();
}

最佳答案

这部分是行不通的

void Book::setAuthorName(string first, string last)
{
Author author;

author.setFirstName(first);
author.setLastName(last);
}

因为在这个函数中你创建了一个本地对象,设置它的值,然后在函数退出时销毁它。如果您想保留此作者信息,您需要在 Book 类中创建类 Author 的成员变量。

在你的 Book 类声明中,你需要这样的东西

class Book {
Author m_Author; // This is your member variable that you can store author data in

};

然后在您的 setAuthorName 函数中,设置 m_Author 的值,而不是创建局部变量。这将保留成员变量 m_Author

中的值

关于c++ - 我不明白如何将变量从一个类中的方法传递和检索到另一个类中的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com