【发布时间】:2014-03-10 16:32:16
【问题描述】:
我正在尝试使用 std::string 作为函数类型和变量类型来设置一个基本类,但是同时使用这两种类型会给我一个分段错误。如果我删除函数或变量,一切都很好。我确定我犯了一个非常愚蠢的错误!这是我的代码: main.cpp
#include <iostream>
#include <cstdlib>
#include <string>
#include "myclass.h"
int main()
{
myclass obj;
obj.replace();
return EXIT_SUCCESS;
};
myclass.h
#ifndef MYCLASS_H_
#define MYCLASS_H_
#include <string>
class myclass
{
private:
std::string instruction;
public:
myclass();
std::string replace();
};
#endif
myclass.cpp
#include "myclass.h"
#include <iostream>
myclass::myclass()
{
std::cout<<"I am the constructor"<<std::endl;
}
std::string myclass::replace()
{
std::cout<<"I replace"<<std::endl;
}
【问题讨论】:
-
对于初学者,你说你会从
myclass::replace返回一个std::string而你没有,所以这是个问题。 -
令我印象深刻的是,您甚至遇到了段错误。如果不返回错误,编译器至少应该警告您。
-
在和 tada 中添加了退货声明!非常感谢 faranwath
-
@faranwath 添加你的答案,你会得到支持而不是你的评论。
-
@EricFortin:可悲的是,一些流行的编译器不会发出警告(更不用说拒绝带有警告的代码),除非你告诉他们。
标签: c++ string class segmentation-fault