【c++初学】遇到问题:对xxx未定义的引用

2023-05-16

在编译的时候遇到了 未定义引用

root@czp-PC:/mnt/hgfs/vmsd/cpp/class_static# g++ used.cpp 
/tmp/ccFDQ1NR.o:在函数‘main’中:
used.cpp:(.text+0xbc):对‘page::~page()’未定义的引用
collect2: error: ld returned 1 exit status
root@czp-PC:/mnt/hgfs/vmsd/cpp/class_static# 

原因是,这个析构函数~page()只在类的声明中写上了,
但是没写它的函数实体,所以在编译的时候报了这个错误

如果main函数里面没有调用跟这个类相关的东西,比如说通过这个类去实例化一个对象等等。。

然后做了一个测试,在main函数里面这样写

int main(void)
{
	page p1;	
	page p2;
	page p3;
	page p4;
	p1.print();

	return 0;
}

此时编译后的结果为

root@czp-PC:/mnt/hgfs/vmsd/cpp/class_static# g++ used.cpp 
/tmp/ccZV6y1O.o:在函数‘main’中:
used.cpp:(.text+0xe5):对‘page::~page()’未定义的引用
used.cpp:(.text+0xf1):对‘page::~page()’未定义的引用
used.cpp:(.text+0xfd):对‘page::~page()’未定义的引用
used.cpp:(.text+0x109):对‘page::~page()’未定义的引用
used.cpp:(.text+0x12b):对‘page::~page()’未定义的引用
/tmp/ccZV6y1O.o:used.cpp:(.text+0x137): 跟着更多未定义的参考到 page::~page()
collect2: error: ld returned 1 exit status
root@czp-PC:/mnt/hgfs/vmsd/cpp/class_static# 

可以发现,实例化一个对象的时候,它会检测这个object对应的class里面有没有构造函数和析构函数,并且有没有写他们的函数实体,如果没写的话就报错了,

我这里是实例化了4个对象,并且调用了其中一个对象里面的一个函数

我在想我才实例化了4个对象为什么报错5次

从此可以得出结论,就是当执行对象的函数的时候,执行完了,它也会执行一次析构函数进行收尾的,所以才会得出有5个报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【c++初学】遇到问题:对xxx未定义的引用 的相关文章

随机推荐

  • AD(altium designer)软件的基础使用(硬件的一些总结,写的有些乱,高手请略过)

    1 快捷键 xff1a Ctrl 43 R 复制并重复粘贴 Shift 43 c 取消选择 Space 逆时针旋转对象 Shift 43 space 顺时针旋转对象 X 水平翻转对象 Y 垂直翻转对象 G切换捕捉栅格 V F View中的F
  • C++字节转换 (byte转int 互转)(BCD和HEX转换)

    2个字节short int 高低位转化 short int y 61 0x7f21 y 61 y amp 0xff00 gt gt 8 y amp 0x00ff lt lt 8 printf 34 x 34 y 用short型变量储存 xf
  • 王者荣耀-数模论文分享(虽然结果我自己都不信)

    基于基础数据的王者荣耀英雄强度评估及英雄设计 摘要 王者荣耀是当下很火爆的一款手机游戏 xff0c 如何基于当下的双方阵容选择合适的英雄来获得胜利 xff0c 是一个值得探讨的问题 xff0c 现基于游戏数据对于各个英雄的强度进行建模评估
  • 用蚁群算法求解TSP问题

    TSP是什么 xff1f TSP全称Travelling salesman problem 中文名 xff1a 旅行商问题 就是模拟退火中讲到的14个城市之间巡回旅行 xff0c 求路径最短的问题 为什么偏偏找他呢 xff1f 因为这是一个
  • python 语法小进阶1

    1 filter 是通过生成 True 和 False 组成的迭代器将可迭代对象中不符合条件的元素过滤掉 xff1b 而 map 返回的则是 True 和 False 组成的迭代器 gt gt gt res1 61 map lambda n
  • 焊接的技巧与方法

    手工焊接操作的基本步骤 1 清洁焊接对象的表面 xff0c 这一步是必须的 xff0c 就算你再赶时间也不能偷懒 用小刀或者砂纸把焊点打磨光亮 xff0c 露出铜的光泽 铜表面的氧化物会阻碍焊锡与之形成合金 xff0c 这一步做得不到位的话
  • 计算机网络体系结构

    计算机网络体系结构 一 计算机网络概述计算机网络的概念 组成与功能概念 xff1a 计算机网络 功能 xff1a 数据通信 连通性 资源共享分布式处理 信息综合处理 提高可靠性 负载均衡 发展的三个阶段组成 xff1a 物理组成 xff1a
  • 嵌入式技术基础与实践(第4版)

    1 5 2020 开放权限 在此之前 xff0c 防报告查重 嵌入式系统概述 嵌入式系统常用术语 嵌入式系统常用的C语言基本语法概要 M0 43 体系结构与指令系统简介 存储映象 中断源 硬件最小系统 GPIO及基本打通原理 程序的基本调试
  • 串行通信基础知识与UART驱动构件使用方法

    串行通信基础 串行通信接口 异步串行通信 UART 常称为 串口 或SCI xff0c 在USB未普及之前 xff0c 是PC机必备通信接口之一 通信方式为单字节通信 xff0c 是最简单的串行通信方式 RS232 RS485 接线简单 x
  • ARM Cortex-M0+中断机制与中断编程步骤

    中断基础知识 为什么需要使用中断 xff1f 如果通过查询接收标志查看一个字节是否收到 xff0c 则需要时刻花费CPU等资源 但中断机制能够在收到一个字节后 xff0c 通知CPU把收到的字节取走 异常 xff1a CPU强行从正常运行的
  • 计算机网络体系结构

    一 计算机网络概述 计算机网络的概念 组成与功能 概念 功能 组成 工作方式 分类 计算机网络的标准化工作及相关组织 标准分类 计算机网络的标准化工作 相关组织 二 计算机网络体系结构与参考模型 计算机网络分层结构 计算机网络体系结构 为什
  • KL25嵌入式实验考核

    KL25嵌入式实验考核 xff08 6 43 xff09 404 页面找不到 说明资源在审核中 1 利用 KL25 小板实现 控制红色 LED 灯每隔 2 秒钟亮暗变换的同时 在 PC 机上显示 MCU 的计时时间 xff0c MCU 的初
  • 自制PMW3901光流模块

    PMW3901光流Sensor体积小 功耗低 精度高 xff0c 效果非常好 xff0c 自己做了一个光流小模块带TOF测距 xff0c 使用Pixracer 43 PX4固件 xff0c 测试效果还不错 测试视频 xff1a https
  • 模数转换ADC模块

    通用基础知识 ADC模块是嵌入式应用中重要的组成部分 xff0c 是嵌入式系统与外界连接的纽带 xff0c 是在测控系统中的重要内容 ADC模块 xff1a 即模数转换模块 AD转换模块 xff0c 功能是将电压信号转换为相应的数字信号 实
  • 实验五 Flash在线编程实验

    一 xff0e 实验目的 xff08 1 xff09 掌握 Flash 存储器在线编程的基本概念 xff08 2 xff09 熟悉 Flash 存储器的在线编程擦除和写入的步骤 xff08 3 xff09 进一步深入理解 MCU 和 C 串
  • Install OpenCV+ Python in Ubuntu

    1 VMware安装ubuntu 不建议在Windows下学习 安装教程 Tip1 xff1a Ubuntu安装结束后无法正常联网 然后就是等待漫长的更新 Tip2 文件含有中文名 打开终端 export LANG 61 en US xdg
  • Tracking motion in video

    Tracking motion in video Download the source code to Ball Tracking with OpenCV
  • parse command line arguments

    parse command line arguments
  • 计算机网络

    计算机网络 一 计算机网络体系结构 二 物理层 三 数据链路层 四 网络层 五 运输层 六 应用层
  • 【c++初学】遇到问题:对xxx未定义的引用

    在编译的时候遇到了 未定义引用 root 64 czp span class token operator span PC span class token operator span span class token operator s