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

网站 备案 哪个省wordpress视频预览插件

网站 备案 哪个省,wordpress视频预览插件,广州推广比较好的公司,青岛永诚网络科技有限公司C面向对象程序设计-北京大学-郭炜【课程笔记#xff08;五#xff09;】 1、常量对象、常量成员函数1.1、常量对象1.2、常量成员函数1.3、常引用 2、友元#xff08;friends#xff09;2.1、友元函数2.2、友元类 3、运算符重载的基本概念3.1、运算符重载 4、赋值运算符的重… C面向对象程序设计-北京大学-郭炜【课程笔记五】 1、常量对象、常量成员函数1.1、常量对象1.2、常量成员函数1.3、常引用 2、友元friends2.1、友元函数2.2、友元类 3、运算符重载的基本概念3.1、运算符重载 4、赋值运算符的重载4、重载赋值运算符的意义 – 浅拷贝和深拷贝5、运算符重载为友元 写毕业论文中学习速度较慢 开始课程P14 4-4.常量对象、常量成员函数 课程链接程序设计与算法三C面向对象程序设计 北京大学 郭炜 课程PPTgithub提供的对应课程PPT 1、常量对象、常量成员函数 1.1、常量对象 如果不希望某个对象的值被改变则定义该对象的时候可以在前面加const关键字。 class Demo{private :int value;public:void SetValue() { } }; const Demo Obj; // 常量对象1.2、常量成员函数 在类的成员函数说明后面可以加const关键字则该成员函数成为常量成员函数。常量成员函数执行期间不应修改其所作用的对象。因此在常量成员函数中不能修改成员变量的值静态成员变量除外也不能调用同类的非常量成员函数(静态成员函数除外。 解释【因为静态成员对象不属于对象的一部分被所有对象所共享。静态成员函数不会访问非静态的成员变量。】 实例 class Sample {public:int value; // 成员变量void GetValue() const; // 常量成员函数void func() { }; // 成员对象Sample() { }; // 构造函数 };void Sample::GetValue() const // 常量成员函数 {value o; // Error常量成员函数中不能修改成员变量的值func(); // Error常量成员函数中不能调用同类的非常量成员函数因为非常量成员函数可能修改成员变量的值 }实例2: #includeiostreamclass Sample {public:int value;void GetValue() const;void func() {};Sample() {} };int main() {const Sample o;//o.value 100; // err.常量对象不可被修改//o.func(); // err.常量对象上面不能执行非常量成员函数o.GetValue(); // OK常量对象上可以执行常量成员函数return 0; } // 在Dev C中要为Sample 类编写无参构造函数才可以Visual Studio 2010中不需要两个成员函数名字和参数表都一样但是一个是const一个不是算重载。 class CTest {private :int n;public:CTest() { n 1 ; }int GetValue() const { return n ; }int GetValue() { return 2 * n ; } // 函数重载关系 }; int main() {const CTest objTest1; // 常量对象CTest objTest2; // 非常量对象std::cout objTest1.GetValue() std::endl; // 调用int GetValue() const { return n ; }std::cout objTest2.GetValue() std::endl; // 调用int GetValue() { return 2 * n ; } return 0; }// OUT 1 21.3、常引用 引用前面可以加const关键字成为常引用。不能通过常引用修改其引用的变量。如下实例 const int r n; r 5; //error n 4; //ok对象作为函数的参数时生成该参数需要调用复制构造函数效率比较低。用指针作参数代码又不好看如何解决 答可以用对象的引用作为参数 可以用对象的引用作为参数如 class Sample { … }; void PrintfObj(Sample o) { …… }问题对象引用作为函数的参数有一定风险性若函数中不小心修改了形参o则实参也跟着变这可能不是我们想要的。如何避免 答使用对象的常引用作为参数如下实例。 class Sample { … }; void PrintfObj( const Sample o) { …… } // 这样函数中就能确保不会出现无意中更改o值的语句了。2、友元friends 友元分为友元函数和友元类两种 2.1、友元函数 1友元函数一个类的友元函数可以访问该类的私有成员。 实例 #includeiostreamclass CCar; // 提前声明CCar类以便后面的CDriver类使用 class CDriver {public:void ModifyCar(CCar * pCar); // 改装汽车 };class CCar {private:int price;friend int MostExpensiveCar( CCar cars[], int total); //声明友元friend void CDriver::ModifyCar(CCar * pCar); //声明友元 }; // 通过友元函数直接访问CCar的私有成员变量 void CDriver::ModifyCar( CCar * pCar) {pCar-price 1000; //汽车改装后价值增加 }// 全局的普通函数 int MostExpensiveCar( CCar cars[], int total) //求最贵汽车的价格 {int tmpMax -1;for( int i 0; i total; i )if( cars[i].price tmpMax)tmpMax cars[i].price; //cars[i]是一个CCar对象return tmpMax; }int main() { return 0; }将一个类的成员函数(包括构造, 析构函数) 说明为另一个类的友元。如下实例 class B {public:void function(); }; class A {friend void B::function(); };2.2、友元类 友元类如果A是B的友元类那么A的成员函数可以访问B的私有成员。 class CCar {private:int price;friend class CDriver; //声明CDriver为友元类 }; class CDriver {public:CCar myCar;void ModifyCar() { //改装汽车myCar.price 1000; // CDriver是CCar的友元类可以访问其私有成员} }; int main() { return 0; } 注意事项Note 友元类之间的关系不能传递, 不能继承 具体来说就是A是B的友元B是C的友元即A是C的友元这是不可以的 3、运算符重载的基本概念 C预定义表示对数据的运算 , -, *, /, %, ^, , ~, !, |, , , , ! …… 只能用于基本的数据类型整型, 实型, 字符型, 逻辑型…… 不能用于对象之间的运算 在数学上两个附属可以直接进行、-等运算。但在C中直接将或-用于复数对象是不允许的。有时会希望让对象也能通过运算符进行运算。这样代码更简洁容易理解。 例如complex_a和complex_b是两个复数对象 求两个复数的和希望能直接写成complex_a complex_b 3.1、运算符重载 实例 注意事项 重载为成员函数时参数个数为运算符目数减一重载为普通函数时参数个数为运算符目数 #includeiostreamclass Complex {public:double real, imag;Complex(double r 0.0, double i 0.0):real(r), imag(i){}Complex operator-(const Complex c); // 重载为成员函数 };// 重载为普通函数 Complex operator(const Complex a, const Complex b) {return Complex(a.real b.real, a.imag b.imag); // 返回一个临时对象 } Complex Complex::operator-(const Complex c) {return Complex(real - c.real, imag - c.imag); // 返回一个临时对象 }int main() {Complex a(4, 4), b(1, 1), c;c a b; // 等价于coperator(ab)std::cout c.real , c.imag std::endl; std::cout (a-b).real , (a-b).imag std::endl;// a-b 等价于a.operator-(b)return 0; }// OUT: 5,5 3,3c a b; 等价于c operator(a,b);a-b 等价于a.operator-(b) 4、赋值运算符的重载 注意以下教学视频中代码存在问题请注意对比 #includeiostream #includecstring using namespace std;class String {private: char * str;public:String () : str(new char[1]) {str[0] 0;} const char * c_str() { return str; }String operator (const char * s); // 对赋值运算符进行重载// 输入值是const char * s返回值时String 的引用~String( ) {delete [] str;} }; // 重载 ‘’  obj “hello”能够成立 String String::operator (const char * s) { delete [] str;str new char[strlen(s)1];strcpy(str, s);return * this; }int main() {String s; // s.str是char类型的s Good Luck, ; // ”“是重载因为等号两边类型是不匹配的等价于 s.operator(Good Luck,)std::cout s.c_str() std::endl;// String s2 “hello!”; //这条语句要是不注释掉就会出错因为这是初始化语句s Shenzhou 8!; ”“是重载因为等号两边类型是不匹配的等价于 s.operator(Shenzhou 8!)std::cout s.c_str() std::endl;return 0; }// OUT Good Luck, Shenzhou 8!4、重载赋值运算符的意义 – 浅拷贝和深拷贝 问题上述图片中这样做够了吗还有需要改进的地方吗 此处好好听课不好解释 5、运算符重载为友元 通常, 将运算符重载为类的成员函数重载为友元函数的情况: 成员函数不能满足使用要求普通函数, 又不能访问类的私有成员 实例1:运算符重载 class Complex{double real, imag;public:Complex(double r, double i):real(r), imag(i){ }; Complex operator(double r); // 运算符重载 };Complex Complex::operator(double r) { //能解释 c5return Complex(real r, imag); }
http://www.zqtcl.cn/news/8452/

相关文章:

  • 手机网站样例商城网站建设自助建站平台
  • 承德微网站建设小学生摘抄新闻
  • 做相册的网站dw天津住房城乡建设网站
  • 广西建设教育网站如何做网站的搜索栏
  • 茂名营销网站开发工作室做网站
  • 公司网站集资网站开发人员犯法么备案网站名称大全
  • dedecms制作网站教程外国自适应企业网站
  • 东莞自助建站平台江门网络培训学院
  • 重庆智能网站建设推荐重庆网站推广运营公司
  • 网站建设的重要性与价值安卓程序下载安装
  • 徐州网站建设策划天圆地方建筑网站
  • 网页制作网站受众群体分析有没有做catalog的网站
  • 网站如何做绿标全自动引流推广软件下载
  • 网站建设属于哪个类目德州金航网站建设
  • 有四川建设人才网这个网站吗做网站收费标
  • 南通专业网站设计制作wordpress monster
  • 哪个网站可以做卖房免费的拓客软件有哪些
  • 网站集约化建设解读ios网页游戏
  • 济南行业网站开发天津注册公司流程和费用标准
  • 网站建设的经验做法绿盒子网站建设案例
  • 微信网站怎么开发专门做正品的网站手机版
  • 给公司做网站网上购物系统功能模块
  • 网站 文件夹 上传网站开发项目书
  • 同江佳木斯网站建设东莞seoseo优化排名
  • 做餐饮培训网站广告亚马逊seo关键词优化软件
  • 短视频素材免费下载网站网站建设这个行业如何
  • 深圳网络科技公司有哪些搜索引擎优化规则
  • 云南网站建设优化企业阅读网站策划书
  • 做二手家电市场加什么网站可以即时设计生成网页
  • 青岛网站域名备案查询深圳网络推广建站