MINO吖 2022-08-25 23:32 采纳率: 100%
浏览 17
已结题

VS中C++使用全局变量的问题

问题遇到的现象和发生背景

C++初学阶段,使用VS创建了一个空白项目;
在index.cpp中包含了main函数,另一个util.cpp中包含了其他的方法和类;
现在想要在index.cpp中使用util.cpp中的class,但是却遇到了错误。

问题相关代码,请勿粘贴截图
class Shape {
private:
    int width;
    int height;

public:
    Shape(int w, int h) {
        width = w;
        height = h;
    }
    int getArea();

};
int Shape::getArea() {
    return width * height;
}
#include <iostream>
#include "util.cpp"
using namespace std;

int main() {
    Shape shape(10, 10);
    int area = shape.getArea();
    cout << "Area is " << area << endl;

    return 1;
}
运行结果及报错内容

img

我的解答思路和尝试过的方法

把util.cpp改成util.h可以解决,但是如果我再新建一个文件cpp文件,也想调用util的class,又会遇到这个重新定义了的问题。

  • 写回答

2条回答 默认 最新

  • 私房菜 移动开发领域优质创作者 2022-08-26 09:49
    关注

    你这个是编程前期最容易遇到的问题,重复引用
    也就是你一个定义 X 被 A B 同时引用,然后C 里面又同时引用了A B,这样就会报 X 重定义
    你要养成习惯:

    #ifndef __X__
    #define __X__
    
    。。。。
    。。。。// 你的代码
    
    #endif
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月5日
  • 已采纳回答 8月28日
  • 修改了问题 8月25日
  • 创建了问题 8月25日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效