没有在类中声明变量成员函数?

时间:2016-04-06 23:11:31

标签: c++

可以sombody向我解释为什么我的代码不起作用,以及如何修复它,谢谢:)

我一直收到这个错误:

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;
};

4 个答案:

答案 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;
}