c++
aningxiaoxixi
此人很聪明,一看就会,所以不写
展开
-
c++能不能给类的成员变量在声明的时候初始化?初始化顺序的方法有几种?
好比一台机器能够生产某种零件,零件的各个尺寸可以在一定程度任意改变,但是我们并不是每次生产这种零件都需要一个一个地给定每一个参数,然后再生产,机器会自己带有一套“默认”的零件尺寸参数,这样新手可以直接用默认参数生产,除非你知道每一个参数都是干啥的,否则没必要更改。有人说在声明的时候初始化相当于在构造函数中初始化,其实不是的,成员变量初始化的顺序为:先进行声明时初始化,然后进行初始化列表初始化,最后进行构造函数初始化,如下代码:(另外初始化列表中初始化的顺序是和变量声明的顺序一样,而与列表中的顺序无关)转载 2023-02-14 08:47:13 · 656 阅读 · 0 评论 -
NULL和nullptr(C++11)区别
C语言我们用NULL作为指针变量的初始值,而在C++一般不建议这么做,C++中,如果想表示空指针,建议使用nullptr,而不是NULL。NULL具有二义性,为了解决这种二义性,C++11标准引入了关键字nullptr作为空指针常量。nullptr 是c++ 中的关键字。原创 2023-02-14 01:01:07 · 83 阅读 · 0 评论 -
二叉树总结
D 5号节点的左子树高度为3,右子树高度为1,两边高度之差绝对值为2,违反了规则3,不是平衡二叉树。规则2:每个节点的值比它的左子树所有的节点大,比它的右子树所有节点小(有序)C 7号节点属于5号节点的左子树范围却比5大,违反规则2,不是平衡二叉树。规则3:每个节点左子树的高度与右子树高度之差的绝对值不超过1。B 5号节点有三个孩子,违反规则1,不是平衡二叉树。规则1:每个节点最多只有两个子节点(二叉)...原创 2022-08-29 01:06:55 · 274 阅读 · 0 评论 -
c++ 重载 重构 重定义
1 重载定义: C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。注意:返回值类型必须相同,否则报错,如下1.cpp:10:11: error: ‘int printData::print(int)’ cannot be overloaded int print(int i) { ^1.cpp:7:12: e原创 2022-04-15 07:53:22 · 1471 阅读 · 0 评论 -
c++ 智能指针 shared_ptr 与 weak_ptr 的使用
注意 编译的时候要指定 --std=c++11例如g++ myshareptr.cpp --std=c++11代码示例#include<iostream>#include<string>#include<memory>using namespace std;class Report{ private: string str; public: Report(const std::string s)原创 2022-01-29 20:36:04 · 726 阅读 · 0 评论 -
c++ 父类调用子类的方法
c++ 父类调用子类的方法1 虚函数使用2 这个方法感觉不太实用:强转转换c++中子类转父类,父类转子类此文参考c++父类调用子类的方法原创 2021-07-27 22:24:36 · 4089 阅读 · 0 评论 -
c++ 调用 c语言
mian 文件#include <iostream>#include"test.h"using namespace std;//在C++中想调用C中的函数//extern "C" void show(); //一个一个函数调用的方法int main(){ show(); return 0;}test.h 文件(头文件把c语言函数包到宏里面,头文件 #include <stdio.h>可以放进去,也可以拿出来)#ifndef T原创 2021-06-18 21:23:29 · 381 阅读 · 0 评论 -
c语言函数指针
需要使用一个头文件如果 不使用 1.h,直接 gcc 1.c 2.c 是错误的1.c#include<stdio.h>#include "1.h" int fun(int a){ printf("1111111111111\n");}2.c#include<stdio.h>#include "1.h"/*int fun(int a){ printf("1111111111111\n");}*/int main(){原创 2021-06-10 23:43:23 · 97 阅读 · 1 评论 -
c语言文件 调用c++ 函数
1.CPP文件中的内容#include “mytest.h”#include using namespace std;int add(const int a, const int b){cout << “a=” << a << endl;cout << “b=” << b << endl;return (a + b);}2.头文件中的内容在函数声明时添加extern “C”,就可以在C中调用。为了同时可以在C++中原创 2021-06-10 11:29:40 · 431 阅读 · 0 评论 -
c++ 重载运算符
要点1 operator关键词 修饰运算符2 跟函数重载类比// 修饰 运算符 () 1 #include <iostream> 2 using namespace std; 3 4 class Distance 5 { 6 private: 7 int feet; // 0 到无穷 8 int inches; // 0 到 12 9 public: 10原创 2021-04-28 23:39:03 · 109 阅读 · 0 评论 -
c++ struct类 与 :
struct stream_type_t { stream_type_t() : volume(1.0f), mute(false) { } float volume; bool mute; };看上去一脸懵逼1 首先 在c++中 stream_type_t 也是类(struct 同 class)stream_type_t() 为构造函数C++ struct.原创 2021-03-10 12:59:36 · 107 阅读 · 0 评论 -
c++问题细节学习
C++函数默认参数原创 2020-12-27 14:01:39 · 139 阅读 · 0 评论 -
::在c++中的作用
"::“在baiC++中表示作用域,和所属关系。”::"是运算符中等级最高的du,它分为三种,分别如zhi下:一、作用域dao符号:作用域符号”::“的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。例如:A,B表示两个类,在A,B中都有成员member。那么:1、A::member就表示类A中的成员member。2、B::member就表示类B中的成员member。二、全局作用域符号:全局作用域符号:当全局变量在局部函数中与其中原创 2020-07-11 14:02:14 · 2320 阅读 · 0 评论