简单c++问题,关于自定义头和相关编译问题.50分

pqzha1 2008-08-22 02:06:53
我定义3个文件,plane.h, plane.cpp. app.cpp (app.cpp是主程序)

--------------------plane.h---------------------------
#ifndef PLANE_H
#define PLANE_H


class Plane
{
private:
int ticketNum;

public:
Plane (int);
int getNum(void);
void setNum(int);
};


#endif
--------------------plane.cpp------------------------------------
#include <iostream>
#include "plane.h"
using namespace std;

Plane::Plane(int num)
{
ticketNum = num;

}


int Plane::getNum()
{
return ticketNum;
}


void Plane::setNum(int num)
{
ticketNum = num;
}
------------------app.cpp---------------------------------
#include "plane.h"
#include <iostream>

using namespace std;

int main()
{
Plane a(5);
cout<<a.getNum()<<endl;


}
-------------------------------------
我用这个命令去编译(不确定对不对)

g++ app.cpp plane.cpp -o app

但是,错误发生,结果如下:

[root@localhost assignment]# g++ app.cpp plane.cpp -o app
app.cpp: In function `int main()':
app.cpp:9: error: 'class Plane' has no member named 'getNum'

我不知道为什么说plane类里没有成员函数getNum.我定义了啊~ 
解决转200卡..
...全文
198 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maxwell 2008-08-22
  • 打赏
  • 举报
回复
楼上说的还真有可能发生,要是这样的话,楼主的编译器可够老了。
Darkneece 2008-08-22
  • 打赏
  • 举报
回复
int Plane::getNum(void)
{
return ticketNum;
}

改成这样试一下
juvily 2008-08-22
  • 打赏
  • 举报
回复
1.编译多个文件,但不连接:
g++ file1.cpp file2.cpp
会生成两个文件:file1.o, file2.o

2.连接:
g++ -o outFileName file1.o file2.o
会生成一个可执行文件:outFileName。

如果想,一步就完成编译和连接,那么:
g++ -o outFileName file1.cpp file2.cpp

-o选项控制是否连接。
Maxwell 2008-08-22
  • 打赏
  • 举报
回复
那你把-g改成-O2呢?O是优化。字母O。
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 coverallwangp 的回复:]
引用 12 楼 pqzha1 的回复:
我刚试了下g++ -g plane.cpp app.cpp -o app, 居然通过了!

-g什么意思啊?

-g
  只是编译器,在编译的时候,产生调试信息。
[/Quote]

我也搜到这个了,但不知道什么意思.也不知道为什么加了这个就不出错了
coverallwangp 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 pqzha1 的回复:]
我刚试了下g++ -g plane.cpp app.cpp -o app, 居然通过了!

-g什么意思啊?
[/Quote]
-g
  只是编译器,在编译的时候,产生调试信息。
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
我刚试了下g++ -g plane.cpp app.cpp -o app, 居然通过了!

-g什么意思啊?
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Maxwell 的回复:]
g++ plane.cpp app.cpp -o app
调换一下顺序试试呢?

我的版本4.3和3.4.4都没有问题,不过是在windows下。
[/Quote]

还是一样..

顺便说下:我不把程序分成3个,如果是一个的话,声明&实现&main都在一个文件的话,是没问题的...
Maxwell 2008-08-22
  • 打赏
  • 举报
回复
g++ plane.cpp app.cpp -o app
调换一下顺序试试呢?

我的版本4.3和3.4.4都没有问题,不过是在windows下。
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyu637 的回复:]
他用的不是windows
用的是gcc in linux
[/Quote]

恩,我用的linux

LS说代码没问题,为什么我这里有问题?哭了~~ 
难道是编译器坏了..
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xkyx_cn 的回复:]
加一个参数-I.
把当前目录也加到包含目录:

C/C++ code
g++ -I. app.cpp plane.cpp -o app
[/Quote]


还是完全一样的错误提示,说找不到那个函数
wuyu637 2008-08-22
  • 打赏
  • 举报
回复
他用的不是windows
用的是gcc in linux
wangdeqie 2008-08-22
  • 打赏
  • 举报
回复
我试了,代码没问题
Maxwell 2008-08-22
  • 打赏
  • 举报
回复
在windows下没有问题,用楼主的代码和命令可以编译过。没法复现你的问题。
main函数最后别忘了加return语句。
xqls_xqls 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyu637 的回复:]
编译的命令好像不对。
[/Quote]

用VC++6.0没有问题。
xkyx_cn 2008-08-22
  • 打赏
  • 举报
回复
加一个参数-I.
把当前目录也加到包含目录:

g++ -I. app.cpp plane.cpp -o app
pqzha1 2008-08-22
  • 打赏
  • 举报
回复
那应该是什么样的命令呢?
多谢!!
wuyu637 2008-08-22
  • 打赏
  • 举报
回复
编译的命令好像不对。
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性析部,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,通过Matlab代码实现了控制算法的仿真验证。该方法融合强化学习的在线自适应能力与传统PID控制的稳定性优势,利用QLearning算法动态优化PID控制器的比例、积、微参数,以应对水下复杂流体环境、模型不确定性及外部干扰等挑战,从而提升AUV轨迹跟踪的精度、鲁棒性与动态响应性能。文中系统阐述了AUV的六自由度非线性动力学建模过程、QLearning算法的状态空间与动作空间设计、奖励函数构造及训练机制,并详细说明了PID参数自整定的闭环控制架构。仿真结果表明,相较于传统固定参数PID控制器,该智能控制策略在多种工况下均展现出更优的控制效果,有效抑制了超调,加快了响应速度,并增强了抗干扰能力。; 适合人群:具备自动控制理论、强化学习基础及Matlab/Simulink仿真能力,从事水下机器人、智能控制、海洋工程、自动化等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于AUV、UUV等无人水下平台的高精度自主导航与运动控制;②为解决非线性、强耦合、时变系统的控制器参数自适应整定问题提供智能化解决方案;③作为强化学习与经典控制理论深度融合的技术范例,推动智能控制算法在海洋装备中的工程化应用。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点剖析QLearning的状态-动作-奖励机制设计、PID参数更新逻辑及仿真对比实验结果,有条件者可在更复杂的动力学模型或实际硬件平台上进一步验证与优化算法性能。

65,211

社区成员

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

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