C++基础
weixin_41565133
这个作者很懒,什么都没留下…
展开
-
c/c++内存对齐实例说明
关于内存对齐,先让我们看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float为4,long,long long,double,指针类型为8,单位字节。64位系统:sizeof(char):1sizeof(short):2sizeof(int):4sizeof(long):8sizeof(long long)...原创 2020-01-31 20:47:08 · 142 阅读 · 0 评论 -
gdb实用知识及命令
三种常用调试方式1.gdb 文件名2.gdb -p 进程号3.gdb core原创 2020-01-31 20:46:14 · 133 阅读 · 0 评论 -
makefile、g++编译相关
g++-g:加调试信息-o:指定输出文件-std=c++11 指定c++11-lpthread 多线程库 需要加在-o后面,否则还是会提示undefined reference to `pthread_create’。原创 2020-01-31 20:45:27 · 126 阅读 · 0 评论 -
C语言实现面向对象(封装、继承、多态)
#include <stdio.h>#include <stdlib.h> typedef void (*FUNC_TYPE)(void *); //虚函数表结构struct vtbl{ FUNC_TYPE dance; FUNC_TYPE jump;};//基类struct base{ /*virtual table*/ struct...原创 2019-05-01 19:59:08 · 667 阅读 · 0 评论 -
C++运算符结合性(左结合,右结合)
决定表达式计算顺序时,先看运算符优先级,优先级高的先计算。优先级相同时才考虑结合性。优先级相同的结合性必须一致。【右结合举例】=号为例:a=b=c先计算等号右侧的,等价于:a=(b=c)**【++p,++p,p++】运算符优先级:后自增&amp;amp;amp;amp;gt;(解引用) (解引用) = 前自增++p:(解引用) = 前自增 考虑结合性,是右结合,所以相当于(++)p;++*p(解引...原创 2018-11-22 01:35:15 · 8396 阅读 · 1 评论 -
C++ const整理(修饰不同变量,函数)及函数重载
const为限定声明符。使变量变为只读。【修饰全局变量】作用于变为当前文件,所以可以在头文件中定义,被其他文件包含,每个文件定义含有相同的定义和初始化值。【修饰函数局部变量】将变量属性改为只读。生存期与函数相同。函数被调用后分配空间。【不可修饰非成员函数或静态成员函数】int g_func() const{return 0;}上述代码编译错误:error: non-membe...原创 2018-11-22 01:18:46 · 228 阅读 · 0 评论 -
C++各变量在不同数据段的分配(全局(静态)变量,Const,局部变量等)
环境Ubuntu 64位系统 + g++5.4g_iUnInit 's addr=0x6022b4 value:0 //全局未初始化变量 bss段g_iInit 's addr=0x6020a0 value:100 //全局已初始化变量 全局数据段stiUnInit 's addr=0x6022bc value:0 //静态(函数体外)为初始化变量 b...原创 2018-11-22 00:44:41 · 912 阅读 · 0 评论 -
指针,const,数组
const int * pOne; //指向整形常量 的指针,它指向的值不能修改int * const pTwo; //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。const int *const pThree; //指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。int *f(int i, int j);int (*p)(...转载 2018-10-20 22:00:42 · 655 阅读 · 0 评论 -
C++ static/onst/static const成员的声明定义和初始化
Static成员类内声明,类外定义和初始化(可不初始化),类外不带static关键字。Const成员:初始化列表初始化。Const static成员:类内初始化或者类外初始化,不能用初始化列表。...原创 2018-10-20 14:18:17 · 203 阅读 · 0 评论 -
抽象基类及其子类的对象定义
1.不能定义抽象基类的对象。2.继承于抽象基类的类必须实现基类的纯虚函数后才能定义子类的对象。#include <iostream>using namespace std;class A{public: A():i(123){ cout << "A::A()" << endl; } int i; virtual int getValue(...原创 2018-10-22 23:31:30 · 484 阅读 · 0 评论