当前位置: 首页 > 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.pierceye.com/news/8452/

相关文章:

  • 网站开发建站教程详解服装行业做推广网站
  • 电商网站 cms怎么把svg做网站背景
  • 企业网站研发项目流程八个阶段
  • 东软实训网站开发广州互联网企业100强
  • 企业宣传网站方案商城网站建设技术论坛
  • 深圳网站建设公司推荐乐云seoseo 专业为网站建设
  • 请问有没有做网站百度推广代理公司广州
  • 网站根目录权限在线自助下单网站
  • 企业网站访问对象有哪些xampp做网站设置
  • 域名和主机搭建好了怎么做网站公司画册设计网站
  • 一个教做网页的网站网址地址查询域名
  • 六安门户网站建设哪家好网站建设 客户需求
  • 西安外贸网站建设公司做游戏CG分享的网站
  • 网站建设的网络技术保洁公司用哪些网站做推广
  • 英文网站中英对照旅游门户网站模板
  • 深圳网站备案拍照点网站建设人员的安排
  • 四川网站建设找珊瑚云超市网站开发建设建议
  • 做网站编辑我能力得到提升做专利网站的重要点
  • 乐山市规划和建设局门户网站跨境电商关键词工具
  • 朝阳网站优化爱站网反链查询
  • 班级网站设计素材旅游网站开发内容
  • 学做蛋糕什么网站购物网站开发的必要性
  • 网站开发需要哪些铁岭免费移动网站建设
  • 做网站网站判刑wordpress小程序前端
  • 大连建设网站的公司wordpress自助建站
  • 区块链 做网站wordpress 关注公众号
  • 汕尾网站设计app网站制作
  • 佛山做推广网站的做网站建设的公司是什么类型
  • 濮阳公司建站招远做网站哪家好
  • 系统软件开发工程师江苏seo培训