
c++
天天向上的小白白~
这个作者很懒,什么都没留下…
展开
-
关于gcc和ar的一些细节
库文件紧跟源文件之后,在寻找实现时,从源文件之后的第一个库文件开始搜索,并链接第一个找到的定义。猜测在链接时,若存在同名函数,链接第一个,将静态库中的顺序重调,验证猜测。如果不同模块存在同名函数而在不同库中,编译时同时链接这些库,会发生什么?ps:库文件如果写在源文件之前,会出现未定义引用报错。测试函数a.c,b.c main.c内容如下。原创 2022-09-21 15:26:08 · 733 阅读 · 1 评论 -
c++中的冷知识(看C++primer的总结)
指针下标是可以取负数的,string 和vector不行 std::string nums[] = {"hello","world"}; auto *p = &nums[1]; std::cout<<p[-1]<<std::endl;输出:hello怎么说呢,string vector也不一定报错,但是输出会混乱,可能和你想象中的结果不太一样......原创 2021-09-06 11:59:13 · 560 阅读 · 0 评论 -
C++中数据类型与typeid().name()返回结果总结
Iterator:可读可写得迭代器类型 std::vector<int> b {1,2,3}; auto d = b.begin(); std::cout<< typeid(d).name()<<std::endl;N9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEconst_iterator:只读不可写迭代器类型,注意看,打印出来的“N9__gnu_cxx17__normal_i..原创 2021-09-05 22:52:40 · 1661 阅读 · 0 评论 -
C++基础知识总结(持续更新:未完待续)
1.如果一个对象a的某个操作f会对所有类型包括未知类型进行操作,使用全局函数f(a,b)而不要使用成员函数a.f(b),这样方便其他未知类需要被a操作的时候扩展操作而不用修改a的类定义,例如cout类的操作 <<,当自定义类b需要被输出的时候,只需要全局重写operator <<即可cout<<b,而不用修改cout源码。2.类A的实例a被定义为const a时,a只能调用const函数,例如:class TEMP{ void func1(...原创 2021-08-28 15:12:50 · 122 阅读 · 0 评论 -
C++中创建对象时三种方式与构造函数
#include <iostream>using namespace std;class complax{public: complax(double r=0,double i=0) :re(r),im(i) {cout<<"create function with parms"<<endl;} double real()const{return re;} double imag()const{return im;}p.原创 2021-08-25 22:51:19 · 669 阅读 · 2 评论