error C2059: 语法错误 : “public”等错误

黑夜愁客 2009-04-06 02:15:07
我在hex.h定义:
#ifndef __BTOHEX_H
#define __BTOHEX_H
#include <iostream>
#include <string>
using namespace std;
public int getMax(int a, int b)//here public is a bad word
{
int result = 0;
if(a>b){
result = a;
}else{
result = b;
}
return result;
}
#endif

#include "hex.h"
#include <string>
#include <iostream>
using namespace std;
int main(){

int result = getMax(34,67);
cout << "result is"<< result <<endl;
return 0;
}

c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\hex.h(6) : error C2059: 语法错误 : “public”
c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\hex.h(7) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\hex.h(7) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\test.cpp(7) : error C3861: “getMax”: 找不到标识符
生成日志保存在“file://c:\Documents and Settings\Admin\My Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm”
test - 4 个错误,0 个警告
----------------------------------
如果我把public去掉就可以了
为什么呢?
...全文
2549 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
getMax只是一个函数,不是类的成员.

不需要public修饰,C++只有在类里面,才有public之分.
黄志义 2009-04-06
  • 打赏
  • 举报
回复
LZ是从JAVA转行过来的吧
soulforcemw 2009-04-06
  • 打赏
  • 举报
回复
public,protected ,private等访问修饰符在c++语言中是针对类提出的概念。只有在类中才能使用访问修饰符,
也就是成员变量,成员函数之类的可以使用访问修饰符修饰。非成员函数不能使用public等修饰,因为它本身就是全局性质的,
任何对象都可以访问它,不需要什么访问限制。

public 修饰符使类的成员对于可访问该类的所有代码都可见。
所有类和接口在默认情况下都为 public。类或接口的成员可以使用 public 修饰符来标记。
不能将 public 修饰符与其他任何可见性修饰符(private、protected 或 internal)组合。
wuyu637 2009-04-06
  • 打赏
  • 举报
回复
c++里public只用在class里修饰类函数的访问权限,或者是子类的继承权限。


一个单独的函数是不能使用public修饰的。因为默认的就是PUBLIC

所以说你java写多了。
黑夜愁客 2009-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyu637 的回复:]
因为这个不是java
[/Quote]恩,这个我知道,就是java影响的太多,那具体原因呢
wuyu637 2009-04-06
  • 打赏
  • 举报
回复
因为这个不是java

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧