首页 > 解决方案 > 班级没有成员发言?

问题描述

我刚刚开始学习类,我正在尝试制作一个非常简单的代码,称为 cat。

在我的 main、h 和 cpp 文件中,它说“Cat”类没有成员“speak”现在正在寻找可能的解决方案,但找不到任何帮助。如果我将 void Cat::speak() 放入我的 h 文件中,它会更正其他两个,但随后会显示“成员减速中不允许使用限定名称”//Main

#include <iostream>
#include "Cat.h"

using namespace std;

int main() {

Cat jim;

jim.speak(); //CLASS "CAT" HAS NO MEMBER "SPEAK"

return 0;
}

//cat.h

#pragma once

#ifndef CAT_H_
#define CAT_H_

class Cat {
public:
void::speak(); //THE GLOBAL SCOPE HAS NO SPEAK
};

#endif /*CAT_H_*/

//cat.cpp

#include <iostream>
#include "Cat.h"

using namespace std;

void Cat::speak() {     //CLASS "CAT" HAS NO MEMBER "SPEAK"
cout << "Meow!" << endl;
}

标签: c++visual-c++

解决方案


void::speak(); //THE GLOBAL SCOPE HAS NO SPEAK

它将这解释为void ::speak()引导标识符(名称)::向 C++ 指示的位置,“查看所有名称的全局范围”。 ::是“范围解析运算符”

在头文件中,您应该只使用void speak();它,因为 C++ 在您的类声明中看到它,因此知道它是类的一部分。


推荐阅读