我正在编写一个用C++编写家庭作业的程序。我有一个问题位从一个构造函数初始化值传递到另一个和它说:如何正确地将变量传入和传出非默认构造函数?
error C2664: 'Book::Book(std::string,Author *,Publisher *,double)' : cannot convert parameter 2 from 'Author' to 'Author *'
我有点在OOP生锈和新的C++。
请张贴如果我应该包含更多的代码我会附上从我不能做转换的主类和类的代码。该方案还没有完成。
Main.cpp的
#include <iostream>
using namespace std;
#include "Book.h"
void main()
{
cout << "Book 1" << endl;
Author *pAuthor = new Author("John", "Doe");
Publisher *pPublisher = new Publisher("Wrox", "10475 Crosspoint Blvd.", "Indianapolis");
Book *book = new Book("Memory Management", *pAuthor, *pPublisher, 49.99);
cout << "Book 2" << endl;
int i;
cin >> i;
};
一几点:你根本不应该使用'new',并且因为这个简单的程序,你已经有了内存泄漏。取一个临时地址是非法的&(ostringstream()<< number)'并且不应该编译。另外,'string(title)'是多余的,它可以只是'title'。另外'void main'是非法的,它应该是'int main',你不必从它返回任何东西,它会自动返回'0'(尽管_no其他函数将会这样做,main是一个特例)。 –