C++
Ace_Yom
关注方向: 计算机视觉-行人检测、跟踪
展开
-
error: linker command failed with exit code 1 (use -v to see invocation)
使用C++编译程序,有时会出现这个错误:ld: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v to see invocation)具体原因有许多,目前遇到的有这些:1. template的使用问题-原创 2015-08-14 13:22:47 · 1060 阅读 · 0 评论 -
C++ Primer 掌握得不好的部分或跳过的部分
7.5.6 Literal Classes原创 2015-10-27 10:29:04 · 620 阅读 · 0 评论 -
C++11 range for 遍历多维数组, 迭代变量添加引用 "&"的问题
问题背景 auto 是 C++ 11 扩展的新特性,用于自动类型推导。不过,如果你希望推导出的类型为引用(&),就要手动在变量名前加 '&';如果你还需要变量是常量的话,也要手动加入 'const' 修饰符。 长话短说,本篇博文的目的是,阐述 auto 遍历多维数组时, 变量名添加引用的 '&' 的问题,解释它并给出解决方案,本博文的参考文献[1] 《C++ Pri原创 2015-10-08 09:29:12 · 4706 阅读 · 3 评论 -
C++ 枚举类型(enum)
C++ 11引入了 域化的枚举,使用关键字 class 标记。对于unscoped 的枚举变量 和 枚举量,它们可以自动隐式转换为整型。 常用术语:enumeration type -- 枚举类型;enumerator -- 枚举量(在枚举类型中定义的常量);enum(enumeration object)-- 枚举变量 在声明枚举类型的时候,可以显示指定枚原创 2015-10-20 09:28:37 · 1263 阅读 · 0 评论 -
一些重要的C++ 基础
内存中寻址(addressable)的最小单位是字节 (byte),存储的最小单位是字 (word)在大部分计算机的实现中,1 byte=8 bits, 1 word = 4 bytes / 8 bytes = 32 bits / 64 bits举例,下面是内存中的一个字:(设 1 word = 4 bytes)左边的是字节表示的地址,从地址736424往后的32个bi原创 2015-09-27 22:44:11 · 702 阅读 · 0 评论 -
C++ 浅谈操作符的优先级和结合顺序
刚刚看到一个表达式,以为是错误的,没想到是正确的。于是记录下来,这是 Primer 的习题 Exercises Section 4.6 Exercise 4.20 (f) iter++->empty(); 其中设定 iter 为 容器 vector 的一个迭代器。我原来的思路:-> operator 的 优先级比 postfix ++ 要高,那么先调用 -> operator,但是原创 2015-10-10 10:58:49 · 932 阅读 · 1 评论 -
c++应用程序文件的编译过程
这里讲下C++文件的编译过程及其中模板的编译过程;一:一般的C++应用程序的编译过程。 一般说来,C++应用程序的编译过程分为三个阶段。模板也是一样的。在cpp文件中展开include文件。将每个cpp文件编译为一个对应的obj文件。连接obj文件成为一个exe文件(或者其它的库文件)。下面分别描述这几个阶段。1.include文件的展开。 includ转载 2015-10-16 12:43:03 · 520 阅读 · 0 评论 -
C++ for循环 纯指针遍历多维数组
指针是C/C++中很重要的一个概念,对指针操作熟悉的人,一般对程序对内存的访问和使用都比较敏感,多了解底层是很有益处的。一直都使用下标(subscript)来访问数组。一起来尝试用指针吧 ! 以二维数组的访问为例,直接给出代码:#include using namespace std;int main() { int ia[3][4] = {}; /* e原创 2015-10-08 17:54:51 · 7738 阅读 · 0 评论 -
指针与引用的区别
指针和引用都是间接访问数据的方式,那么它们有什么区别呢?下面是鄙人做的一个总结:指针与引用的区别: 1. 引用不是一个对象,而指针是。引用在初始化时给它指定了一个地址后,就始终指向这个新地址;而指针,只要没有用const限制,可以保存新的地址。 2. 给指针赋值时,要么赋一个地址,要么赋一个同类型的指针; 给引用赋值原创 2015-08-06 09:44:58 · 504 阅读 · 0 评论 -
类的自动转换
类的自动转换: 说明: C++允许程序员指定类之间进行转换的方式(含基本类型) 站在类的角度看问题,姑且分为“当前类” 和 “其他类” 假设: 当前类是程序员定义的,其他类既可以是程序员定义的,也可以是C++内置的基本类型方式: 通过定义 “转化函数” 1. 其他类转换为当前类 转化函数:原创 2015-08-06 09:58:04 · 578 阅读 · 0 评论 -
对象和类
前言: 本文中知识点较为零散和基础,主要用于本人的学习回顾 访问所创建对象的公有成员 1. 自动存储类对象: "句点方法"2. 动态存储类对象(使用new): 我们创建了一个匿名的对象,并把这个对象的地址传给了一个指针。我们可以使用指针的指向符"->"来访问公有成员,也可以使用"*"对指针进行反引用,然后用"句点方法"来访问公有的成员变量。e.g原创 2015-08-06 09:51:00 · 442 阅读 · 0 评论 -
类继承
除了修改代码外,有两种方法能够用来扩展类的定义,一个是组合,另一个就是继承 组合: 使用类型为别类的成员变量继承: 从已有的类派生出新类,在新类中加入新的成员 本文仅讨论继承中的公有继承 (class derivedClass : public baseClass) 分为三部分: 第一部分讲述多态,第二部分讲述派生类的方法,第三原创 2015-08-06 10:21:14 · 520 阅读 · 0 评论 -
类和动态内存分配
程序对内存的使用:1. 栈区 (stack) - 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2. 堆区 (heap) - 在内存开辟另一块存储区域。一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3. 全原创 2015-08-06 10:07:48 · 617 阅读 · 0 评论 -
杂七杂八
input stream relevant 从输入流对象读入数据的时候,不合法的状态为1)碰到一个 eof (end-of-file),2)或者输入的类型不符合.cin 的 >> 操作符函数 和 getline 函数都会返回相关的 istream 对象的引用。可以把 istream 对象放在条件判断当中,当该 istream 对象不合法的时候,返回 false;否则返回 tru原创 2015-10-02 10:03:48 · 377 阅读 · 0 评论