自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 c语言谷歌测试框架

#include<stdio.h>#include <gtest/gtest.h>int add(int a,int b){ return a+b;}TEST(testfun,add){ EXPECT_EQ(add(1,2),3); EXPECT_EQ(add(2,2),4); EXPECT_EQ(add(3,2),5); EXPECT_EQ(add(1,5),3);}int main(int argc, char co

2020-11-19 23:54:53 419

原创 c语言面试题每日一练

目录1.Linux中的常用命令 21.在/tmp/目录下创建test.txt文件,内容为: Hello,World! ,用一个命令写出来。 22.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。 23.查找linux系统下以config结尾,并备份到/data/backup/目录下 24.创建 test.txt所属的用户为root,组为abc,请将test.txt使拥有者为abc,组为root,写出命令。 25.如何查看文件内容,命令有哪些?查看文件第1行到3行,查看文

2020-11-19 20:21:58 44597 3

原创 C++中涉及到类继承,构造函数和析构函数执行的顺序,以及虚函数在其中的作用

一.构造函数与析构函数在对象创建与删除时的执行顺序构造函数:按照继承顺序依次执行父类的构造函数,再执行子类的构造函数,析构函数:和构造函数完全相反;这里面有个逻辑是,对象创建时,子类会自动先调用父类的构造函数,析构时,子类自己的析构函数执行完会自动调用父类的析构函数;但是反过来就不会了。所以就会用到虚析构函数;二.虚析构函数在实际调用对象时,我们经常会用父类的指针去操作子类的函数功能,这个时候delete父类的指针后,只会执行父类的析构函数,而子类里的析构函数不会执行所以会造成内存泄露。当我们把

2020-11-17 22:40:24 866

原创 C++中友元函数和友元类的实际应用

一.什么情况下需要声明友元函数和友元类?当类外的的函数或则其它的类想要访问类中的private和protected时在类的private里声明。比如下面这篇文章中的例子:单例模式上面那篇文章最后并没有调用析构函数,调用构造函数的是在类中的静态函数中,所以可以不声明友元直接调用。那如果实例化类的函数在类外,或则函数结束时要析构怎么办呢?这个时候就要声明友元函数。#include <iostream>#include <string>#include <memor

2020-11-17 22:35:12 322

原创 C++单例模式实际应用于意义

一.为什么需要单例模式?这一次我们要向大家介绍一种新的设计模式——单例模式(singleton pattern)。所谓“单例模式”,指的就是一个类只能有一个或者几个实例化的对象——比如说,在 Windows 或者 macOS 这样的桌面操作系统里,鼠标指针箭头有且只有一个,不能出现第二个。更多内容,大家可以用自己常用的搜索引擎搜索关键字“单例模式”或者“singleton pattern”。为了实现这个目的:1.为了保证只有一个实例对象,不能通过直接实例化来构造函数,那么构造函数和非缺省构造函数就不能

2020-11-14 16:29:01 903

原创 C++运算符重载相关问题

涉及到运算重载,那么首先我们得明白有哪些运算符?1.单目运算符:++,- -2.双目运算符:+,-,*,/,3.三目运算符:?:不过它不能重载这些运算符都可以对基本类型做运算,像整型,字符型以及浮点型,那是因为这些基本类型已经对这些运算符定义好了运算。而如果我们需要对我们自己定义的类对象进行运算符运算的话,就需要重载运算符,比如下面:class A{ int x; int y; A(int thex,int they) :x(thex),y(they) {} }int ma

2020-11-10 23:30:05 480

原创 C++中public,protected,private的访问权限如何判断问题,以及类的public,protected,private继承有什么作用?

这几个权限标识符,很多人都会搞混,其实只要理解了它的意思就很简单。要理解这几个标识符,你得搞明白访问权限是相对哪些对象的权限,就像银行的保险库,普通人肯定是没有权限的,但是银行经理就是可以进出的。那这里的权限就是相对于普通人和银行内部的人来说的。同理在类中,这个权限就是对类外,类内部,子类来说的。判断访问权限准则:首先类自己的成员是都可以访问的1.public让外部的可以访问,其它都可以访问2.protected让外部不能访问,让类的子类可以访问3.private让外部和类的子类都不能访

2020-11-07 16:34:33 436

原创 C++中return返回时有没有创建临时对象调用构造函数问题

1.如果返回值被用在赋给其它对象或作为其它函数的参数时,函数内部在已经创建有对象情况下,返回时时不在创建零时对象的,如果函数内的对象没有创建,只在返回时出现过,那么会在返回时创建,这个就是因为必须得有实例对象才能传值。#include<iostream>#include<string>using namespace std;string GetMyString(){ return "This is a string";}class zheng{ p

2020-11-03 22:09:05 873

原创 用C++编写构造一个简单的内存池

(Memory Pool)是一种内存分配方式,又被称为固定大小区块规划(fixed-size-blocks allocation)。通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配效率得到提升

2020-11-03 15:58:18 350

原创 C++用dynamic_cast与visitor模式返回类的名称

一.用dynamic_cast的方式返回类的名称#include <iostream>#include <string>#include <vector>#include <memory>using namespace std;class Cat;class Dog;class Mouse;class IVisitor //这里是可以将这个类直接放在Animal类外面的,放在里面主要是让代码更紧凑。{public: virt

2020-11-01 14:30:11 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除