![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
喜欢做我自己
这个作者很懒,什么都没留下…
展开
-
C++内存分配的三种方式
不同的内存分配方式,有不同的内存调度机制。C++ 语言的三种内存分配方式分别是:静态存储区分配、栈内存分配和堆内存分配。静态存储区分配静态分配方式下的内存在程序编译的时候就已经分配好了且存在于程序的整个运行过程。例如 static 变量,其生命周期随程序的结束而结束,而非像一般变量随函数或作用域的结束而结束。除了 static 变量,还有一种全局对象 static object,也可以存放在静态存储区。栈内存分配栈内存分配方式下的内存是存在于某作用域的一块空间。例如调用某个函数时,函数内局部变量的原创 2021-02-01 12:02:49 · 1890 阅读 · 0 评论 -
关于unsigned char 类型的数据,按位取反~操作的问题完美解决
大家先来看一段代码#include <stdio.h>int main(){ unsigned char block = 4; unsigned char a = 0x00; unsigned char b = 0xff; unsigned char data[17] = "\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x04\xFB\x04\xFB"; if((data[7] != (~data[3]))||原创 2020-12-31 11:12:49 · 1774 阅读 · 0 评论 -
16进制和字符串的相互转换
```cchar ptmp[128];void strtohex(char *in, u8* out){ int lengthp = 0; int lengthtmp = 0; int i = 0; memset(ptmp, 0, sizeof(ptmp)); memset(out, 0, 57); lengthp = strlen(in); for (i = 0; i < lengthp; i++) { if (in[i] <= '9') ptmp[i] = in[.原创 2020-05-19 18:00:26 · 207 阅读 · 0 评论 -
template模板类
template模板类可以实现数据类型不同但代码相同的功能有两种声明方式template <class Type>template <typename Type>如果是在类中使用到了模板类,可以在类声明前添加template <class Type>即可以在声明中使用类型Type在定义处将Stack::改为Stack<Type>:...原创 2019-10-24 09:41:26 · 327 阅读 · 0 评论 -
C++中关于构造函数有参数的对象数组的初始化和使用
C++中关于构造函数有参数的对象很简单`Test *a = new Test(1);但是C++中关于构造函数有参数的对象数组的使用却不是那么友好以下为对C++中关于构造函数有参数的对象数组的使用的几种方法class Test{ public: int id; Test(int i) { id = i; } ~Test() { cout <&...原创 2019-10-18 13:11:53 · 4476 阅读 · 0 评论 -
C++运算符重载小记
运算符重载在C++的类操作中很重要,经常应用于对象与对象之间进行操作,下面是一些运算符重载的例子:Time operator+(const Time & t) const;Time Time::operator+(const Time & t) const{ Time sum; sum.value = t.value + value; ...原创 2019-10-11 10:22:14 · 130 阅读 · 0 评论 -
explicit关键字关闭隐式类型转换
explicit Student(const std::string & n) : name(a),scores(n){}explicit Student(int n):name("NULLY").scores(n){}原创 2019-10-10 12:17:42 · 213 阅读 · 0 评论 -
C++中数组的替代品vector和array模板类
在C++中,除了字符指针和string类以外,vector和array模板类,都可以定义数组#include <vector>vector<double> a1(4);a1[0] = 1.0;a1[1] = 1.0;a1[2] = 1.0;a1[3] = 1.0;#include <array>array<double,4>...原创 2019-10-10 10:47:08 · 297 阅读 · 0 评论 -
成员初始化列表以及静态私有变量初始化
在一个类中,我们往往可能会定义一个静态变量,但在声明一个类的时候不会进行内存的申请,只有在进行对象定义的时候才会进行内存申请,但问题来了,在程序进行到构造函数的时候,要对静态变量进行初始化,但因为是const静态变量,不能改变其初始值,会出现错误。因此,必须在执行构造函数之前,在创建对象时进行初始化。C++提供了成员初始化列表语法来实现这个功能。在构造函数定义处添加上冒号,并由逗号分割初始化列...原创 2019-09-30 15:44:39 · 1000 阅读 · 0 评论 -
关于转换函数
一般我们都会用到类型转换操作,如将int型数据转换成double型数据,甚至是将数字转换成对象。那对象直接转换成数字呢?答案是不可以直接转换,但是有种方法间接的实现这一功能,它就是转换函数。构造函数,可以实现从某种类型到类类型的转换,但无法将某一类型的对象直接转换成数字。关于这一点,C++特地定义了一种特殊的运算符函数——转换函数。转换函数的形式为:operator typename();...原创 2019-09-30 14:25:23 · 618 阅读 · 0 评论 -
空指针 NULL ,0 ,nullptr
空指针的表示方法有几种,在C中可以用NULL 和0来表示空指针,但C程序员一般习惯用NULL而不是0来表示,这是为了区别数字0;在C++中,传统上更喜欢使用0而不是NULL;为了更好的区分,C++11特意添加了一个新的关键字nullptr来表示空指针。...原创 2019-09-30 12:11:25 · 278 阅读 · 0 评论 -
火灾救援 ,一个帖子的回复,刚写完准备回帖,居然就删帖了
火灾救援描述某高中起火了,教室里困有大量的学生等待救援。学校里有n名受困学生,分布在m个不同教室里。火灾发生时,这n名聪明的学生每个人用自己手中的移动电话给校长发了一条短信,曰"我在某某教室"。于是,校长总共收到了n条短信息。每条短信息中,都说明了发信学生所在的教室的编号,用1-1000之间的整数表示。现在,这些信息放在你的输入中:第1行是一个整数n,表示学生的数目;第2行有n个整数,每个整数...原创 2019-09-29 11:35:31 · 830 阅读 · 5 评论 -
const成员函数及错误提示error C2511: 'void Tack::Set_Data(void) const' : overloaded member function not found
对于成员函数Set_Data()来说,其无法保证调用对象不被修改,如果要像const一样不被修改,可以使用一种新的语法来保证函数不会修改调用对象。在C++语法中,可以将const关键字放到函数的括号后面。//函数声明处class Tack{private: std::string m_hello; long m_shares; int m_num; double m_value;...原创 2019-09-26 14:50:01 · 959 阅读 · 0 评论 -
C++实现输入任意数,将其拆分成若干个素数的乘积,判断一个数是否可以由两个素数相乘得到,给定一个范围,计算在这个范围内那些数可以是两个素数的乘积
在论坛上面看到这个有意思的题目,花了点时间给他搞了下。`#include #include using namespace std;bool isPrimenum(long m);bool isprimeandnum(long num);//判断是否可以两个素数相乘int main(){long i;long num ;long j = 1;long tmp = num / ...原创 2019-09-18 14:58:46 · 2727 阅读 · 0 评论