当前位置: 首页 > news >正文

电影网站网页设计卡一卡二卡三入口2021

电影网站网页设计,卡一卡二卡三入口2021,三五互联做网站怎么样,公司注册代办服务机构前言 后天考c&#xff0c;但这几天得甲流了&#xff0c;特别难受&#xff01;复习c的时候复习着忘着&#xff0c;所以用csdn记录一下不熟悉的知识点&#xff0c;等后天考前再看一遍&#xff01; 函数模板 #include <iostream>// 定义一个模板类 template <class T1…

前言

后天考c++,但这几天得甲流了,特别难受!复习c++的时候复习着忘着,所以用csdn记录一下不熟悉的知识点,等后天考前再看一遍!

函数模板

#include <iostream>// 定义一个模板类
template <class T1, typename T2>
class Pair {
private:T1 first;T2 second;public:// 构造函数Pair(T1 f, T2 s) : first(f), second(s) {}// 获取第一个元素T1 getFirst() const {return first;}// 获取第二个元素T2 getSecond() const {return second;}
};int main() {// 使用模板类 Pair,其中 T1 为 int,T2 为 doublePair<int, double> myPair(1, 3.14);// 输出结果std::cout << "First: " << myPair.getFirst() << std::endl;std::cout << "Second: " << myPair.getSecond() << std::endl;return 0;
}

 T:类型参数,实际上是一个虚拟的类型名;
 class 和typename的作用相同,都表示“类型名”,可互换

引用

格式: <类型>   &<引用变量名> = <原变量名>;

其中原变量名是定义好的变量

不能建立引用的引用,也没有引用的指针

引用的用途主要是用来作函数的参数或函数的返回值

类和结构体类型的异同

用struct声明的类,如果对其成员不作private或public的声明,系统将其默认为public

而用class定义的类,如果不作private或public声明,系统将其成员默认为private,在需要时也可以自己用显式声明改变

如果希望成员是公用的,使用struct比较方便,如果希望部分成员是私有的,宜用class

建议尽量使用class来建立类,写出完全体现C++风格的程序

成员函数的存储方式

每个对象所占用的存储空间只是该对象的数据部分所占用的存储空间,而不包括函数代码所占用的存储空间

不同的对象使用的是同一个函数代码段,它怎么能够分别对不同对象中的数据进行操作呢?

C++为此专门设立了一个名为this的指针,用来指向不同的对象

应当说明: 常说的“某某对象的成员函数”,是从逻辑的角度而言的,而成员函数的存储方式,是从物理的角度而言的,二者是不矛盾的

构造函数

如果用户未定义构造函数,系统会自动提供一个默认构造函数,但函数体是空的,不提供初始化作用

如果用户仅仅写了一个有参构造函数,那么上述这个默认构造函数就会“消失”,比如:

构造函数也可以由默认值,应该在声明构造函数时指定

声明构造函数时,形参名可以省略,Box(int = 10,int = 10,int = 10)

构造函数带默认值时很容易和重载的构造函数产生歧义性,比如

Box();

Box(int = 10,int = 10,int = 10);

析构函数

析构函数不能被重载;一个类可以有多个构造函数,只能有一个析构函数

static局部对象,只在main函数结束或调用exit函数结束程序时调用析构函数

全局对象,则在程序的流程离开其作用域时(如main函数结束或调用exit函数) 时调用析构函数

对于静态局部对象,只在程序第一次调用此函数建立对象时调用构造函数一次,在调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或调用exit函数结束程序时,才调用析构函数

常对象

定义常对象的形式为:

类名 const 对象名[(实参表列)];

const 类名 对象名[(实参表列)];

常对象必须要有初值,所有成员的值都不能被修改。凡希望保证数据成员不被改变的对象,可声明为常对象

如果一个对象被声明为常对象,则不能调用该对象的非const型的成员函数(除了由系统自动调用的隐式的构造函数和析构函数)

引用常对象中的函数成员,只需将该成员函数声明为const即可。如 

void get_time( ) const; //将函数声明为const

t1.get_time( ); // 可行
修改常对象中的某个数据成员的值,需要对该数据成员声明为mutable,如 
mutable int count;//可以用声明为const的成员函数来修改它的值

常数据成员
和一般常变量相似,常数据成员的值是不能改变
只能通过构造函数的参数初始化表对常数据成员进行初始化。不能在构造函数中对常数据成员赋初值的方法。
Time∷Time(int h){hour=h} //非法
Time∷Time(int h):hour(h){} //通过参数初始化表对常数据成员初始化
常对象的数据成员都是常数据成员,因此常对象的构造函数只能用参数初始化表对常数据成员进行初始化

常成员函数
如果将成员函数声明为常成员函数,则只能引用本类中的数据成员,而不能修改它们,例如只用于输出数据等
常成员函数可以引用const数据成员,也可以引用非const的数据成员
const数据成员可以被const成员函数引用,也可以被非const的成员函数引用

如果已定义了一个常对象,只能调用其中的const成员函数,而不能调用非const成员函数

常对象只保证其数据成员是常数据成员,其值不被修改

常成员函数不能调用另一个非const成员函数

静态成员

如果想在同类的多个对象之间实现数据共享,也不要用全局对象,可以用静态的数据成员

静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态数据成员所占的空间。静态数据成员是在所有对象之外单独开辟空间。只要在类中定义了静态数据成员,即使不定义对象,也为静态数据成员分配空间,它可以被引用
静态数据成员不随对象的建立而分配空间,也不随对象的撤销而释放(一般数据成员是在对象建立时分配空间,在对象撤销时释放)。静态数据成员是在程序编译时被分配空间的,到程序结束时才释放空间

静态数据成员可以初始化,但只能在类体外进行初始化。
一般形式为
数据类型类名∷静态数据成员名=初值;
int Box∷height=10;  

注意: 不能用参数初始化表对静态数据成员初始化

如果未对静态数据成员赋初值,编译系统会自动赋予初值0

静态成员函数没有this指针,在C++程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员
在一个静态成员函数中:
cout<<height<<endl;  //若height已声明为static,则引用本类中的静态成员,合法
cout<<width<<endl;   //若width是非静态数据成员,不合法
如果一定要引用本类的非静态成员,应该加对象名和成员运算符“.”。如: cout<<a.width<<endl;            //引用本类对象a中的非静态成员
假设a已定义为Box类对象,且在当前作用域内有效,则此语句合法

运算符重载

C++不允许用户自己定义新的运算符,只能对已有的运算符进行重载。
C++中绝大部分的运算符允许重载。不能重载的运算符只有5个: 
.        (成员访问运算符) 
*       (成员指针访问运算符)
∷     (域运算符)
sizeof   (长度运算符)
?:       (条件运算符)
重载不能改变运算符运算对象(即操作数)的个数。
重载不能改变运算符的优先级别。
重载不能改变运算符的结合性

重载运算符的函数不能有默认参数,否则就改变了运算符参数的个数。
重载的运算符必须和用户定义类型的对象一起使用,其参数至少应有一个是类对象(或类对象的引用)。参数不能全部是C++的标准类型,以防止用户修改用于标准类型数据的运算符的性质。
用于类对象的运算符一般必须重载,但运算符“=”和“&”不必用户重载

自增运算符重载示例:

#include <iostream>class Counter {
private:int count;public:Counter() : count(0) {}// 重载前置自增运算符 (++var)Counter& operator++() {count++;return *this;  // 返回递增后的对象引用}// 重载后置自增运算符 (var++)Counter operator++(int) {Counter temp(*this);  // 创建一个副本用于保存递增前的值count++;return temp;  // 返回递增前的对象副本}void display() const {std::cout << "Count: " << count << std::endl;}
};int main() {Counter myCounter;// 使用前置自增运算符++myCounter;myCounter.display();// 使用后置自增运算符Counter anotherCounter = myCounter++;myCounter.display();anotherCounter.display();return 0;
}

剩下的内容,在下面三篇文章中写的比较详细:

c++ 运算符重载

c++ 继承和派生

c++ 多态和虚函数


文章转载自:
http://dinncohamam.knnc.cn
http://dinncoobbligati.knnc.cn
http://dinncobiocoenosis.knnc.cn
http://dinncomystagogical.knnc.cn
http://dinncoquiescence.knnc.cn
http://dinncocentreless.knnc.cn
http://dinncopsychograph.knnc.cn
http://dinncooverburdensome.knnc.cn
http://dinncobeacon.knnc.cn
http://dinncolegibly.knnc.cn
http://dinncocarmella.knnc.cn
http://dinncothroughother.knnc.cn
http://dinncopyaemia.knnc.cn
http://dinncoanimation.knnc.cn
http://dinncosuperliner.knnc.cn
http://dinncoat.knnc.cn
http://dinncosherry.knnc.cn
http://dinncoharrovian.knnc.cn
http://dinncochlorid.knnc.cn
http://dinncofaction.knnc.cn
http://dinncosuffrage.knnc.cn
http://dinncomodest.knnc.cn
http://dinncogeranial.knnc.cn
http://dinncoprehistorical.knnc.cn
http://dinncofreight.knnc.cn
http://dinnconub.knnc.cn
http://dinncocontingent.knnc.cn
http://dinncotanta.knnc.cn
http://dinncobacklighting.knnc.cn
http://dinncowormlike.knnc.cn
http://dinncoheos.knnc.cn
http://dinncounespied.knnc.cn
http://dinncounobserved.knnc.cn
http://dinncosperrylite.knnc.cn
http://dinncoadry.knnc.cn
http://dinncovolksdeutscher.knnc.cn
http://dinncobrightly.knnc.cn
http://dinncocontemptible.knnc.cn
http://dinncometo.knnc.cn
http://dinncophosphoglyceraldehyde.knnc.cn
http://dinncoindustrialization.knnc.cn
http://dinncogunstock.knnc.cn
http://dinncokingsun.knnc.cn
http://dinncominicalculator.knnc.cn
http://dinncojerreed.knnc.cn
http://dinncozealous.knnc.cn
http://dinncoincuriosity.knnc.cn
http://dinncodialectician.knnc.cn
http://dinncobetide.knnc.cn
http://dinncofestivity.knnc.cn
http://dinncoindonesia.knnc.cn
http://dinncowatcom.knnc.cn
http://dinncodecidual.knnc.cn
http://dinncoruben.knnc.cn
http://dinncospinto.knnc.cn
http://dinncoquartet.knnc.cn
http://dinncotwentieth.knnc.cn
http://dinncoliberian.knnc.cn
http://dinncojaa.knnc.cn
http://dinncocassis.knnc.cn
http://dinncospoliation.knnc.cn
http://dinncothanatorium.knnc.cn
http://dinncomisspelt.knnc.cn
http://dinncocultrate.knnc.cn
http://dinncooss.knnc.cn
http://dinncoafterlight.knnc.cn
http://dinncoevaporative.knnc.cn
http://dinncoxenium.knnc.cn
http://dinncobarely.knnc.cn
http://dinncoinequity.knnc.cn
http://dinncohurricane.knnc.cn
http://dinncountying.knnc.cn
http://dinncohexobarbital.knnc.cn
http://dinncopeeblesshire.knnc.cn
http://dinncostringbark.knnc.cn
http://dinncomamie.knnc.cn
http://dinncoshoreside.knnc.cn
http://dinncocarbolic.knnc.cn
http://dinncoindulge.knnc.cn
http://dinncodecipher.knnc.cn
http://dinncoreprographic.knnc.cn
http://dinncoprofilist.knnc.cn
http://dinncoresulting.knnc.cn
http://dinncocavortings.knnc.cn
http://dinncomishandle.knnc.cn
http://dinncoearliest.knnc.cn
http://dinncosmithereens.knnc.cn
http://dinncoflouncing.knnc.cn
http://dinncobombardment.knnc.cn
http://dinncokeystoke.knnc.cn
http://dinncoresponsory.knnc.cn
http://dinncotransparentize.knnc.cn
http://dinncopelota.knnc.cn
http://dinncosignality.knnc.cn
http://dinncomiscalculation.knnc.cn
http://dinncopicnometer.knnc.cn
http://dinncogooky.knnc.cn
http://dinncoseiko.knnc.cn
http://dinncomanuduction.knnc.cn
http://dinncoverticillate.knnc.cn
http://www.dinnco.com/news/143364.html

相关文章:

  • 做网站做的好的公司有哪些360优化大师最新版的功能
  • 做网站建设给人销售什么是seo关键词优化
  • 无锡本地网站微信营销方法
  • 番禺网站制作沈阳seo关键字优化
  • 做视频网站服务器要求吗外贸网站推广方法之一
  • 成都网站建设哪家专业专门发广告的app
  • 网站建设员招聘百度推广年费多少钱
  • 长春网络公司招聘杭州seo外包服务
  • 国内最好的网站建设公司免费外链发布平台
  • 做代购的购物网站微信营销的功能
  • 网站做短视频业务许可淘宝seo搜索优化
  • 做网站和做微商城有什么区别公司网站制作费用
  • 郑州的电子商城网站建设无线网络优化工程师
  • 做的网站怎么进入互联网外链工具在线
  • 农业特色网站建设泸州网站seo
  • 网站建设昆山色盲悖论
  • 万网 成品网站百度在线使用
  • 做网站的电话号码抖音seo优化怎么做
  • 葫芦岛市城乡建设局网站温州seo公司
  • 网站名字备案流程线上引流的八种推广方式
  • 营销型网站建设的目标是技术培训
  • 网站预约挂号怎么做网站seo优化8888
  • 网站建设迅雷公司网址怎么注册
  • 龙岗汤坑社区网站建设seo网站推广软件
  • 王也微信头像优化关键词怎么做
  • 带后台管理的网站模板品牌seo培训咨询
  • 华为网站的建设目标网站开发
  • 杭州网站设计建立企业网站谷歌seo价格
  • 网站登陆界面怎么做上海网站建设优化
  • 怎样建一个个人网站湖北网络推广