C++ Primer Plus 学习
文章平均质量分 82
c++
dxy18861848756
这个作者很懒,什么都没留下…
展开
-
C++string类和标准模板库
string类string类包含大量的方法,包括了若干构造函数,用于将字符串赋给变量、合并字符串、比较字符串和访问各个元素的重载运算符以及在字符串中查找字符和子字符串的工具。首先指出:NBTS为以空字符结束的字符串。构造函数描述string(const char *s)将string对象初始化为s指向的NBTSstring(size_type n,char c)创建一个包含n个元素的string对象,其中每个元素都被初始化为字符cstring(const strin原创 2021-02-23 20:54:35 · 208 阅读 · 0 评论 -
C++友元、异常和其他
友元可以将类作为友元。这种情况下,友元类的所有方法都可以访问原始类的私有成员和保护成员。现在有一个tv类和一个remote类(遥控器),我们就可以把remote作为tv的友元。friend class Remote;友元声明可以位于公有、私有或保护部分,位置无关紧要。由于remote类提到了tv类,所以编译器必须了解tv类后才能处理remote类。为此,我们需要首先定义tv类。所有的remote方法都将一个tv对象引用作为引用,因此可以对任何一个tv对象进行操作。class Tv{ pub原创 2021-02-21 11:29:41 · 140 阅读 · 1 评论 -
C++代码重用
包含对象成员的类先介绍一个模板类valarray:valarray类由头文件valarray支持。模板特性意味着声明对象时,必须指定具体的数据类型。valarray<int> q_values;valarray<double> weights;以下是几个使用其构造函数的例子:double gpa[5]={3.1,3.5,3.8,2.9,3.3};valarray<double> v1;//size=0valarray<int> v2(8);原创 2021-02-19 19:45:10 · 183 阅读 · 1 评论 -
C++类继承
一个简单的继承例子从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。先编写一个简单的基类:#ifdef TABTENN0_H_#define TABTENN0_H_#include <string>using std::string;class TableTennisPlayer{ private: string firstname; string lastname; bool hasTable; public: TableTenn原创 2021-02-16 16:25:13 · 117 阅读 · 1 评论 -
C++类和动态内存分配
动态内存和类如果有这样的strbad类:#include<iosream>#ifdef STRBAD_H_#define SREBAD_H_class strbad{ private: char * str; int len; static int num; public: strbad(const char *s); strbad(); ~strbad(); friend std::ostream & opera原创 2021-02-10 15:51:46 · 266 阅读 · 0 评论 -
C++类特性
运算符重载C++根据操作数的数目和类型决定使用哪种定义。运算符的定义和方法的定义类似。类的定义:class Time{ private: int hours; int minutes; public: Time(); Time(int h,int m=0); void AddMin(int m); void AddHr(int h); void Reset(int h=0,int m=0); Time operator+(con原创 2021-02-08 22:11:41 · 193 阅读 · 0 评论 -
C++对象和类
抽象和类定义类:(1)类声明:以数据成员的方式描述数据部分,以成员函数(方法)的方式描述公有接口。(2)类方法定义:描述如何实现类成员函数。通常,我们把接口(类定义)放在头文件中,并将实现放在源代码中。我们一般将类名首字母大写。#ifndef STOCK_H_#define STOCK_H_#include<string>class Stock{ private: std::string company; long shares; double s原创 2021-02-07 15:30:44 · 79 阅读 · 0 评论 -
C++内存模型和名称空间
单独编译我们可以将一个程序放在多个文件中,然后通过头文件#include来相互关联。头文件中可以包括以下内容:(1)函数原型(2)使用#define或者const定义的符号常量(3)结构声明(4)类声明(5)模板声明(6)内联函数在包含头文件时,我们使用"xx.h"而不是<xx.h>,因为对于前者,编译器将在储存标准头文件的主机系统的文件系统中查找;而对于后者,编译器将首先查找当前工作目录或源代码目录。下面是一个coordin.h的例子:#ifndef COORDIN_H_原创 2021-02-04 11:45:16 · 165 阅读 · 0 评论 -
C++函数特性
内联函数使用内联函数,编译器将使用的相应函数代码替换函数使用。节省了调用函数的时间,占用了更多的内存。如果要使用这项特性,需要:(1)在函数声明前加上inline关键词(2)在函数定义前加上inline关键词引用变量引用是已定义变量的别名,主要用途是用作函数形参。将引用变量用作参数,函数将使用原始数据,而不是副本。int a;int & b=a;a和b的值和地址均相同。必须在声明引用变量时进行初始化。int & b=a;int *const pr=&a;原创 2021-01-31 21:39:56 · 561 阅读 · 0 评论