![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习C++
文章平均质量分 78
duhengqi
这个作者很懒,什么都没留下…
展开
-
C++:友元
class A{public: int x; // 公有成员xprotected: int y; // 保护成员yprivate: int z; // 私有成员zA(int p1=0, int p2=0, int p3=0) { x = p1; y = p2; z = p3; } // 构造函数} ;void fun1( ){A obj1( 2, 4,原创 2017-04-29 09:46:12 · 166 阅读 · 0 评论 -
C/C++时间函数使用方法
转载自博客园C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:转载 2017-05-20 15:56:58 · 1393 阅读 · 0 评论 -
C++:模板,string类,异常
函数模板在C++中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推断数据类型。这就是类型的参数化。值(Value)和类型(Type)是数据的两个主要特征,它们在C++中都可以被参数化。所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定原创 2017-05-20 15:42:16 · 1706 阅读 · 0 评论 -
C++:拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a = 100; int b = a; int a = 100;int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace s转载 2017-04-26 09:59:32 · 182 阅读 · 0 评论 -
C++:多态性(虚函数)
我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字转载 2017-05-06 22:32:58 · 247 阅读 · 0 评论 -
C++:向上转型
类其实也是一种数据类型,也可以发生数据类型转换,不过这种转换只有在基类和派生类之间才有意义,并且只能将派生类赋值给基类,包括将派生类对象赋值给基类对象、将派生类指针赋值给基类指针、将派生类引用赋值给基类引用,这在 C++ 中称为向上转型(Upcasting)。相应地,将基类赋值给派生类称为向下转型(Downcasting)。向上转型非常安全,可以由编译器自动完成;向下转型有风险,需要程序员原创 2017-05-06 22:11:51 · 5024 阅读 · 4 评论 -
C++:虚基类详解
今天学习多继承时,遇到二义性的问题,然后找到了回答很详细的博客,下面是转载内容C++虚基类详解1、虚基类的作用从上面的介绍可知:如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避免产生二义性,使其惟一地标识一个成员,如转载 2017-05-06 21:39:09 · 852 阅读 · 0 评论 -
C++:运算符重载
所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。实际上,我们已经在不知不觉中使用了运算符重载。例如,+号可以对不同类型(int、float 等)的数据进行加法操作;v原创 2017-05-13 21:45:50 · 404 阅读 · 0 评论 -
C++新特性:函数模板
函数模板是通用的函数描述,也就是说,它们使用泛型定义函数,其中的泛型可用具体的类型(例如int或double)代替。函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。函数模板的声明形式为:template(参数表){ 函数体}其中,templa转载 2017-05-04 00:48:21 · 307 阅读 · 0 评论 -
C++:引用作为返回值
例如,下面的程序是有关引用返回的4种形式: //********************* //** ch9_6.cpp ** //********************* #include float temp; float fn1(float r) { temp = r*r*3.14;原创 2017-04-16 22:05:30 · 19440 阅读 · 7 评论 -
C++:关于引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明:原创 2017-04-16 21:47:08 · 361 阅读 · 0 评论 -
C++:this指针
this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。this 虽然用在类的内部,但是只有在对象被创建以后才会给 this 赋值,并且这个赋值的过程是编译器自动完成的,不需要用户干预,用户也不能显式地给 this 赋值this 是 const 指针,它的值是不能被修改的,一切企图修改该指针的操作,如赋值、递增、递减等都是原创 2017-04-15 22:17:40 · 283 阅读 · 0 评论 -
C++:类和对象
类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。有些教程将类的成员变量称为类的属性(Pro原创 2017-04-15 22:01:06 · 422 阅读 · 0 评论 -
C++:构造函数和析构函数
在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。构造函数必须是 public 属性的,否则创建对象时无法调用。当然,设置为 private、protected 属性也不会报错,但是没有意义。构造函数没有返回值,因为没有变量来接收返回值,即使有也原创 2017-04-15 22:13:12 · 1165 阅读 · 0 评论 -
C++:new和delete的用法
对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态内存分配解决了这个问题。 new和delete运算符是用于动态分配和撤销内存的运算符。 一、new用法 1.开辟单变量地址空间 使用new运算符时必须已知数据类型,new原创 2017-04-18 21:13:35 · 541 阅读 · 0 评论 -
C++:继承与派生
设计新类时可继承已有的类,这个已有的类被称为基类或父类• 基类是为解决以前的老问题而设计的,在面对新问题时其功能可能会显得不够完善。程序员需要在继承的基础上对基类进行派生,例如添加新功能,或者对从基类继承来的功能进行某些修改。派生的目的是为了解决新问题• 通过继承与派生所得到的新类被称为派生类或子类• 继承与派生的编程原理是:程序员在定义新类的时候,首先继承基类的数据成原创 2017-04-29 12:03:43 · 288 阅读 · 0 评论 -
C++:组合类
关于代码重用:结构化程序设计中重用的代码是算法即函数代码,没有重用数据代码在面向对象的程序设计中重用的是类的代码1,用类定义对象2,通过组合定义新的类(组合类)3,通过继承定义新的类(派生类)组合的编程原理是:程序员在定义新类的时候,使用已有的类来定义数据成员。这些数据成员是类类型的对象,被称为类的对象成员。C++语言将数据成员中包含对象成员的类称为组合原创 2017-04-29 12:02:21 · 2028 阅读 · 0 评论 -
C++用 _findfirst 和 _findnext 查找文件
转自博客园 河沟大河沟一、这两个函数均在io.h里面。 二、首先了解一下一个文件结构体:struct _finddata_t { unsigned attrib; time_t time_create; time_t time_access; time_t time_write; _fsize_t size; ...转载 2018-07-12 16:18:23 · 4660 阅读 · 0 评论