我一直收到这个错误:
no 'int burrito::setName()' member function declared in class 'burrito'
我的目标是从不同的类文件中调用函数
我的main.cpp:
#include <iostream>
#include "burrito.h"
using namespace std;
int main()
{
burrito a;
a.setName("Ammar T.");
return 0;
}
我的班级标题(burrito.h)
#ifndef BURRITO_H
#define BURRITO_H
class burrito
{
public:
burrito();
};
#endif // BURRITO_H
我的班级档案(burrito.cpp):
#include "burrito.h"
#include <iostream>
using namespace std;
burrito::setName()
{
public:
void setName(string x){
name = x;
};
burrito::getName(){
string getName(){
return name;
};
}
burrito::variables(string name){
string name;
};
private:
string name;
};
答案 0 :(得分:1)
你的代码很乱。您需要在头文件和cpp文件中的函数定义中编写函数原型。您缺少一些基本的编码结构。请参阅下文并了解这种编码模式:
此代码应该可以使用并享用墨西哥卷饼!
主要():强>
#include <iostream>
#include "Header.h"
int main()
{
burrito a;
a.setName("Ammar T.");
std::cout << a.getName() << "\n";
getchar();
return 0;
}
CPP文件:
#include "Header.h"
#include <string>
void burrito::setName(std::string x) { this->name = x; }
std::string burrito::getName() { return this->name; }
标题文件:
#include <string>
class burrito
{
private:
std::string name;
public:
void setName(std::string);
std::string getName();
//variables(string name) {string name;} // What do you mean by this??
};
答案 1 :(得分:0)
你可怜的小墨西哥卷饼很困惑。迷茫的墨西哥卷饼无济于事。
您可能希望将墨西哥卷饼声明为:
class Burrito
{
public:
Burrito();
void set_name(const std::string& new_name);
std::string get_name() const;
private:
std::string name;
};
可以在源文件中将方法定义为:
void
Burrito::set_name(const std::string& new_name)
{
name = new_name;
}
std::string
Burrito::get_name() const
{
return name;
}
答案 2 :(得分:0)
头文件只有该类的构造函数。成员函数
setName(string) and getName()
未在头文件中声明,这就是您收到错误的原因。 此外,您需要指定函数的返回类型。
这样做的一种方法是
//Header
//burrito.h
class burrito{
private:
string burrito_name;
public:
burrito();
string getName();
void setName(string);
}
//burrito.cpp
#include "burrito.h"
#include <iostream>
using namespace std;
string burrito::getName()
{
return burrito_name;
}
void burrito::setName(string bname)
{
bname =burrito_name;
}
答案 3 :(得分:0)
这是C ++中类的一个简单示例
将其保存在burrito.cpp
文件中,然后编译并运行它:
#include <iostream>
#include <string>
using namespace std;
class burrito {
public:
void setName(string s);
string getName();
private:
string name;
};
void burrito::setName(string s) {
name = s;
}
string burrito::getName() {
return name;
}
int main() {
burrito a;
a.setName("Ammar T.");
std::cout << a.getName() << "\n";
return 0;
}