C++存在重定义的解决办法
来源:互联网 发布:淘宝正品代购可信吗 编辑:程序博客网 时间:2024/06/08 15:27
进行c++代码规范化编程练习的时候,多个头文件之间进行相互引用就有可能导致某个或多个头文件的多次编译
编译器就会报错重定义
比如 TwoDimensionalShape.h中引用了 Square.h
#include "Square.h"class TwoDimensionalShape{public:virtual void show();virtual ~TwoDimensionalShape(){}};
#include"TwoDimenSionalShape.h"class Square:public TwoDimensionalShape{private:double side; //正方形边长public:Square(); //默认构造函数Square(double side); //带一个参数的构造函数void setSide(double side); //设置边长函数double getArea();//获取面积void show(); //重写基类的输出信息函数virtual ~Square(){}};
显然,头文件Square.h和TwoDimensionalShape.h进行了多次编译,编译器就会报错
#include#include"Square.h"#include"TwoDimenSionalShape.h"using namespace std;int main(){TwoDimensionalShape t;Square s1;s1.setSide(6);Square s2(3);TwoDimensionalShape *merbers[3];merbers[0] = &t;merbers[1] = &s1;merbers[2] = &s2;for (int i = 0; i < 3; i++){merbers[i]->show();}return 0;}
解决方法是在头文件前面加#pragma once
这样就能保证头文件只编译一次
阅读全文
0 0
- C++存在重定义的解决办法
- c/c++总是出现头文件重定义,变量重定义的解决办法。
- 关于winsock2.h的重定义解决办法
- DLL中dllmain重定义的解决办法
- 类型重定义解决办法
- C里的重定义问题
- C #define 行为未知的重定义
- warning C4005: “AF_IPX”: 宏重定义的解决办法
- C++ 错误error C2011:类型重定义的解决办法
- 使用winsock2.h造成的重定义解决办法
- 定义typedef struct 重定义错误解决办法
- 解决只存在于Release版本的重定义符号问题
- 小波图像分解与重构程序存在的问题与解决办法
- 小波图像分解与重构程序存在的问题与解决办法
- [C++]函数的重载、重写和重定义的区别
- C++_重载、重写和重定义的区别
- 重拾c语言——宏定义的预处理
- C++_重载、重写和重定义的区别
- 【开源OA项目】基于环信IM开发完整的企业通讯解决方案-Dolores
- 关于SQLserve安装中出现“启用windows功能NetFx3时出错“
- 制作centos base image for docker
- GitHub添加SSH-KEY
- centos7一键安装mysql
- C++存在重定义的解决办法
- 迭代器失效的场景
- 常用工具处理类
- 【POJ 2572】Seek the Name, Seek the Fame
- oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1、查看数据库锁,诊断锁的来源及类型: select object_id
- leetcode Reverse Integer & Palindrome Number
- c++调用lua文件
- angular2 集成 Editor.md
- bind