默认情况下构造函数插入数据后,我没有得到任何输出,但我不确定为什么不
I'm not getting any output after I have inserted data by default constructor but I'm not sure why not
所以我使用默认构造函数将各个条目插入内存,然后通过调用getBookInfo()
方法读取它们。当我尝试只使用一个变量进行测试运行时,即使在插入数据后调用getBookInfo()
,我也不会得到任何结果。
为什么?
主要.cpp
#include <iostream>
using namespace std;
#include "Book.h"
void main()
{
Book book;
book.setTitle("Advanced C++ Programming");
book.setAuthorName("Linda", "Smith");
book.setPublisher("Microsoft Press", "One Microsoft Way", "Redmond");
book.setPrice(49.99);
book.getBookInfo(); // <-= this should be output
int i;
cin >> i;
};
Book.cpp
#include <iostream>
#include <sstream>
using namespace std;
#include "Book.h"
Book::Book()
{
}
void Book::setTitle(string title)
{
title = title;
}
void Book::setPrice(double price)
{
price = price;
}
string Book::convertDoubleToString(double number)
{
return static_cast<ostringstream*>( &(ostringstream() << number) ) -> str();
}
// this should be output
string Book::getBookInfo()
{
stringstream ss;
ss << title << endl << convertDoubleToString(price) << endl;
return ss.str();
}
更改
void Book::setTitle(string title)
{
title = title;
}
至
void Book::setTitle(string title)
{
this->title = title;
}
无论这种代码发生在哪里,都会发生同样的变化。正如所写的,代码将参数title
的值分配给参数title
,即它什么也不做。编译器可能警告过你这一点。
或者,正如@hmjd所说,更改参数的名称。
您需要捕获从getBootInfo()返回的数据,例如
string result = book.GetBookInfo();
cout << result;
相关文章:
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 代码编译没有任何输出,入门程序
- 可能我知道为什么这段代码没有给出任何输出吗?
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- 为什么下面的Hello World程序在PowerShell上没有显示任何输出?同一程序在CMD上显示正确的输出
- 执行此代码时,它不显示任何输出.为什么?
- 合并排序没有给我任何输出
- 编译器没有显示错误,但我没有得到任何输出.怎么了?
- 当我从头文件和实现文件调用我的函数到我的主文件时,我没有得到任何输出
- 为什么我在链表中插入的代码没有得到任何输出?
- 后缀Expressrion的插图未显示任何输出
- 不显示任何输出
- VS Code C++程序在调试时不显示任何输出
- 当我使用继续时,程序不提供任何输出
- 该代码在 Dev-C++ 中没有给我任何输出
- Cereal 找不到任何输出序列化函数
- C++ 中的侵蚀函数不给出任何输出
- Ocamlopt不会产生任何输出,只有错误代码
- 当我从java代码执行C++时不显示任何输出
- 这个看似无害的代码不会产生任何输出