SourceInsight的使用——ide的使用 SourceInsight的使用——ide的使用(1)创建工程 project->New Project(2)一般的习惯是在项目代码的文件夹平级处创建一个pro文件夹用于存放sourceinsight的工程文件(3)进入这个界面之后设置字体 点击左上角options->Preferences 进入之后就能够设置字体大小和字体样式了(4)同步文件, 在文件选择框——及左侧的框中右键,选择synchronize files勾选全部文件强制同步...
SecureCRT的使用 SecureCRT的使用(1)创建会话(2)获取虚拟机ip地址ifconfig(3)将ip地址填入创建会话的ip地址框中(4)按照ubuntu用户的名称和密码进行连接(5)调节会话字体和颜色,右键选项-》会话选项(6)修改自己的上传下载目录(7)通过rz 和 sz 发送接收ubuntu的文件 安装 sudo apt install lrzsz通过SecureCRT发送文件给ubuntu——会发送到ubuntu的当前目录rz通过SecureCRT接收ubuntu的文件——
ubuntu的基础安装和使用 一、换源(1)到/etc/apt/下cd /etc/apt/(2)备份原来的源文件sudo cp sources.list sources.list.bak(3)替换源文件sudo gedit sources.list将里面的内容替换成源文件内的内容(4)更新源sudo apt-get update二、进入和退出超级用户状态(1)刚装好的ubuntu系统设置超级用户密码sudo passwd root(2)进入超级用户模式su -(3)退出超级用户模式exit或者
[const int *p & int const *p]与int *const p的区别 const指常量,是一个常量修饰符对于一、const int *p;二、int const *p;这两者的*p都作为一个整体在const右边,所以*p,也就是p指向的内容不可修改对于int *const p;const右边是p,p为一个地址,所以p的值,也就是p指针的指向不可被修改...
一篇总结操作系统知识点的结构图博文 https://blog.csdn.net/donkey010/article/details/115017173?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242
C++类模板分文件编写 直接分文件编写的问题类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到解决方法解决方式1:直接在需要用到的文件中包含.cpp源文件#include "person.cpp"解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制#pragma once#include <iostream>using namespace std;#include <string>template<class T1, c
C++类模板成员函数的类外实现 话不多说,直接上代码template<class T1, class T2>class Person {public: //成员函数类内声明 Person(T1 name, T2 age); void showPerson();public: T1 m_Name; T2 m_Age;};//构造函数 类外实现template<class T1, class T2>Person<T1, T2>::Person(T1 name, T2 age)
C++类模板与继承 类模板与继承类模板是能够灵活地与继承配合使用的例子基类结构template<class T>class Base{ T m;};当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型//class Son:public Base //错误,c++编译需要给子类分配内存,必须知道父类中T的类型才可以向下继承class Son :public Base<int> //必须指定一个类型{};//调用void test01(){
C++模板 模板有两大分类,函数模板和类模板其核心思想就是将数据类型看作一个变量,可以在函数调用或者类构建时自由修改变量的数据类型函数模板基础使用语法template<class T>void f(T a, T b){ a = b;}两种调用方法自动类型推导,必须推导出一致的数据类型T,才可以使用 f(a,b);模板必须要确定出T的数据类型,才可以使用 f<int>(a,b);与普通函数的区别普通函数调用时可以发生自动类型转换(隐式类型转换) v
黑马程序员C++文档链接 基础 https://blog.csdn.net/ClaireSy/article/details/108422945核心 https://blog.csdn.net/ClaireSy/article/details/108423047提高 https://blog.csdn.net/ClaireSy/article/details/108423061
C++多态 多态函数名有多种形态表现多态可以分为两类 静态多态 动态多态静态多态函数重载运算符重载函数地址在编译阶段绑定的动态多态派生类和虚函数运行时的体现的多态函数地址在运行阶段绑定的class Animal{public: //Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数,那么编译器在编译的时候就不能确定函数调用了。 virtual void speak()//这个是多态的关键 { cout << "动物在说话" <
C++继承 继承我们发现,上面的这些下级成员都有上级成员的共性,还添加了自己的个性这个时候就能利用继承的技术,减少重复的代码语法class 子类 : 权限 父类{ };class son:public father{ };class animal {public: int age;};class dog : public animal{//继承的语法public: string kind = "狗";};三种继承的方式继承方式一共有三种 公共继承 保护继承 私有继承如上图
C++运算符重载 运算符重载作用:用户自己编写运算符功能,两个类之间直接用普通运算符不行,那就重载运算符用法:将 成员函数/全局函数 名起为 operator<符号>加号运算符重载#include <iostream>using namespace std;class person {public: int num;};person operator+ (const person &p1,const person &p2) { person* temp = n
C++ 友元的概念和使用 友元当private的元素需要被类外元素访问的时候,就将其通过关键字friend设定为友元一、全局函数例子:class phone{ private: int num;}void getNum(phone *p){ cout<<p->num<<endl;//因为private的原因这样是获取不了的}设定友元全局函数class phone{ friend void getNum(phone *p);//在类内认定友元全局函数 private:
C++常函数&常对象 常函数class phone{ int num; void getphone(){ num = 10;//根this->num=10一样 //phone *const this; this = NULL;//this指针不可修改指向,因为它本质上是个指针常量 }}当在成员函数后面加入了一个const之后class phone{ //不加const的时候,是phone *const this //加了const之后,是const phone *const th
C++对象模型和this指针 对象模型非静态成员变量占用类对象空间静态成员变量不占用类对象空间,而是占用全局区的空间函数也不占用类对象空间,程序共享这个函数每个空对象会占用一个内存地址,所以会分配一个字节的空间this指针指向调用这个成员函数的类作用:一、区分形参和本类class phone{ string name; string getName(string name){ //name=name;//会导致问题 this->name = name;//this指向本类,很好的做了区分 }}