Кажется, я неправильно передаю указатели объектов, но почему?

Я работаю над использованием указателей объектов и возможности использовать их адрес памяти для передачи и получения информации.

Моя программа передает только название книги и никакой другой информации, и я не знаю почему.

Как заставить эту программу правильно хранить и извлекать информацию? Я использую указатели для передачи значений, я должен изменить что-то, кроме основной функции?

Это мой файл main.cpp:

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

#include "Book.h"
int main()
{
system("cls");

Author *pAuthor = new Author("John", "Doe");
Publisher *pPublisher = new Publisher("Wrox", "10475 Crosspoint Blvd.", "Indianapolis");
Book *pBook = new Book("Memory Management", pAuthor, pPublisher, 39.99);

cout << pBook->getBookInfo() << endl;

system("pause");

return 0;
};

файл book.cpp:

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

#include "Book.h"
Book::Book()
{
}

Book::Book(string title, Author *pAuthor, Publisher *pPublisher, double price)
{
this->title = title;
this->price = price;
}

Book::~Book()
{
}

0

Решение

Вы передаете pAuther и pPublisher конструктору Book, но ничего не делаете с ними.

3

Другие решения

Book::Book(string title, Author *pAuthor, Publisher *pPublisher, double price)
{
this->title = title;
this->price = price;
}

Здесь вы передаете указатели, но не используете их.

2

Ваш конструктор book () должен вызывать функции setAuthorName и setPublisher с данными из pAuthor и pPublisher.

1
По вопросам рекламы [email protected]