某处有这样一则广告:“与其不问而呆着,不如问个傻瓜5分钟”。我在这方面有一个问题。
过年之前,我在开发中的项目(我在工作室写)休息了一下,终于开始学习Linux下的编程。用 C++ 编写了一个基本的测试代码,编译但输出不可见......告诉我有什么问题吗?
编码:
#include<iostream>
class Book
{
private:
int year;
char* author;
char* bookName;
public:
Book(int year, char* author, char* bookName)
{
this->year = year;
this->author = author;
this->bookName = bookName;
}
char* getStr()
{
return (char*)(std::to_string(year)+" | "+author+" | "+bookName).c_str();
}
int getYear(){return year;}
};
int main()
{
Book b[] = {Book(2016,(char*)"Me",(char*)"Options..."), Book(2018,(char*)"Me",(char*)"Options VAK...")};
for(int i(0);i<2;i++)
std::cout<<b[i].getStr()<<"\n";
return 0;
}
生成文件:
LibPrograme: LibPrigrame.o
g++ -o Programe LibPrigrame.o
LibPrigrame.o: main.cpp
g++ -o LibPrigrame.o -c main.cpp
进行了编译,但是我没有在控制台中显示文本,而是看到了两个空格……我将不胜感激您的建议。
不管是不是Linux...
那些。创建一个临时字符串
string,并返回指向该临时字符串中缓冲区的指针(或在那里实现的任何内容c_str())。当你使用它时,字符串本身就消失了,所以它是一个没有人知道在哪里的指针。不明白出来什么...你在 C++ 中工作吗?所以使用 C++ 字符串,而不是 C - 例如:https ://ideone.com/PDuXE8
我会这样写。