#include <iostream>
/*这是C++中关于面向对象部分的具体笔记和代码
*/ //定义类的语法形式;
//类中的成员项目之间相互引用,直接使用成员;
//类外引用成员的时候需要使用对象名访问public成员;
class Person {
public:
Person(int Id,std::string Name);
Person():Person(,"TOM"){};//委托构造函数
int ID;//公有成员(外部借口);
std::string name;
int names(std::string name);
int ids(){
return ;
}//内联函数;
private:
int sex, age; //私有成员;
protected:
int number = ; //保护成员;
};
//定义函数原型;
//类的成员函数在类体内定义的时候,为内联函数,需要足够简单
//类外定义的成员函数。 //构造函数:
//1、函数名必须与类名相同
//2、不能有返回值
//3、可以有形参,也可以没有形参
//4、可以重载,可以是内联函数
//5、可以带默认参数 //隐含的构造函数
//未定义构造函数,自动生成一个默认构造函数(自己定义了构造函数,仍然希望编译器定义默认的初始化构造函数时,
//Clock() =default;
//参数为空时,补位数据成员设置初始值
//如果没有定义类内的初始值,以默认方式初始化:基本类型的数据默认初始化的值是不确定的
//一定不能定义返回值类型:错误:void Person::Person(){};,一定不能有void
Person::Person(int Id,std::string Name="leo"){
ID =Id;
name =Name;
std::cout<<"初始化完成\n"<<"id,name"<<ID<<name<<"。\n"; //自己定义的初始化构造函数
}
//Person::Person():ID(10),name("tom") {
// std::cout << "初始化完成\n" << "id,name" << ID << name << "。\n"; //自己定义的默认初始化构造函数
//}
//委托构造函数,委托构造函数重写上面这个函数
//Person():Person(0,"tom",10){}
int Person::names(std::string name){
name=name;
std::cout<<"他的名字是:"<<name<<"\n";
std::cout<<ID<<"\n"<<sex<<"\n"<<age<<"\n"<<number;
}; class Clock{
public:
Clock(int,std::string);
Clock(const Clock &C)=delete;//复制构造,delete使编译器不生成默认复制构造函数
int id;
~Clock();
std::string name;
};
Clock::Clock(int Id,std::string Name){
id =Id;
name =Name;
std::cout<<"初始化完成"<<std::endl;
}
//复制构造
//-------------------------------------------------------------------------------//
/*析构函数*/
//析构函数完成对象被删除前的一些清理工作
//在对象的生存期结束的时候系统自动调用析构函数
Clock::~Clock(){
std::cout<<"析构函数的执行过程..."<<std::endl;
};
//----------------------------------------------------------------------------------'//
/*类的组合*/
//组合类的构造函数
//谁在类体中先定义,谁先进行初始化。 int main() {
std::cout << "Hello, OPP!" << std::endl;
Person mypersonobject;
//类的实例化;
// 类的属性的更改
mypersonobject.ID=;
int a = mypersonobject.ids();
int al;
std::cout<<mypersonobject.ID<<"\n"<<a<<"\n"<<"al"<<al;//定义类型,没有赋值的数据是混乱的。例如al
mypersonobject.names("leo"); //调用类的实例的方法
Clock myclock(,"joe");
Person ab;
Person ba(ab);
std::cout<<"\n"<<ab.ID<<"\n"<<ba.ID<<"\n----------------------------------------------------------_\n"<<std::endl; return ;
} //

执行结果

 /home/leo/CLionProjects/OPP/cmake-build-debug/OPP
Hello, OPP!
初始化完成
id,name1TOM。 al0他的名字是:leo 15初始化完成
初始化完成
id,name1TOM。 ----------------------------------------------------------_ 析构函数的执行过程... Process finished with exit code

c++语言的学习笔记代码与笔记注释《面向对象部分》的更多相关文章

  1. c++语言的学习笔记代码与笔记注释《函数部分》

    具体的笔记以注释的形式写在代码内,每个知识点用函数的形式表现. #include <iostream>; #include<cmath> const double PI=3.1 ...

  2. 初探swift语言的学习笔记(闭包-匿名函数或block块代码)

    使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButto ...

  3. # C语言假期学习笔记——6

    C语言假期学习笔记--6 数组 主要学习了一位数组和二维数组. 数组是一组具有相同类型的变量的集合.C语言程序通过元素的下标来访问数组中的元素.(下标从0开始) 一位数组 类型 数组名[元素个数] 二 ...

  4. R语言可视化学习笔记之添加p-value和显著性标记

    R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr ...

  5. CTR学习笔记&代码实现2-深度ctr模型 MLP->Wide&Deep

    背景 这一篇我们从基础的深度ctr模型谈起.我很喜欢Wide&Deep的框架感觉之后很多改进都可以纳入这个框架中.Wide负责样本中出现的频繁项挖掘,Deep负责样本中未出现的特征泛化.而后续 ...

  6. CTR学习笔记&代码实现3-深度ctr模型 FNN->PNN->DeepFM

    这一节我们总结FM三兄弟FNN/PNN/DeepFM,由远及近,从最初把FM得到的隐向量和权重作为神经网络输入的FNN,到把向量内/外积从预训练直接迁移到神经网络中的PNN,再到参考wide& ...

  7. CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

    这一节我们总结FM另外两个远亲NFM,AFM.NFM和AFM都是针对Wide&Deep 中Deep部分的改造.上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM ...

  8. CTR学习笔记&代码实现5-深度ctr模型 DeepCrossing -> DCN

    之前总结了PNN,NFM,AFM这类两两向量乘积的方式,这一节我们换新的思路来看特征交互.DeepCrossing是最早在CTR模型中使用ResNet的前辈,DCN在ResNet上进一步创新,为高阶特 ...

  9. CTR学习笔记&代码实现6-深度ctr模型 后浪 xDeepFM/FiBiNET

    xDeepFM用改良的DCN替代了DeepFM的FM部分来学习组合特征信息,而FiBiNET则是应用SENET加入了特征权重比NFM,AFM更进了一步.在看两个model前建议对DeepFM, Dee ...

随机推荐

  1. Angular5学习笔记 - 创建、运行、发布项目(一)

    一.安装脚手架 npm install -g cnpm --registry=https://registry.npm.taobao.org #安装阿里镜像 npm install -g @angul ...

  2. java常用的空对象 null

  3. Mina2中IoService

    Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架.它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP.UDP/IP.串口和虚拟机内部的管道等传输方式. ...

  4. Java-API:java.util.Random

    ylbtech-Java-API:java.util.Random 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://docs.oracle. ...

  5. C# Lambda快速深度拷贝

    背景:今天上班在班车上和一个同事讨论有关C#拷贝效率的问题,聊到了多种深度拷贝方法,其中就提到了一种Lambda表达式拷贝的方法,这位同事说这种深度拷贝快是快但是如果对象里面再嵌入对象就不能深度拷贝了 ...

  6. 环境搭建:Vue环境搭建和项目初始化(windows)

    1.    安装node.js 官网下载安装:https://nodejs.org/en/ 版本查看:node -v 注意:node版本最好新一点好,推荐6.0以上. 2.    npm安装webpa ...

  7. Python No module named pkg_resources

    好记性不如烂笔头. I encountered the same ImportError today while trying to use pip. Somehow the setuptools p ...

  8. PHP函数(五)-回调函数

    回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数 使用回调函数是为了可以将一段自己定义的功能传到函数内部使用 声明回调函数的方法 变量函数声明 < ...

  9. 微信开发准备(二)--springmvc+mybatis项目结构的搭建

    转自:http://www.cuiyongzhi.com/post/34.html 前面一篇有说道如何在MyEclipse中搭建maven项目,这里将继续介绍如何在搭建好的基础maven项目中引入我们 ...

  10. mysql中表触发器的简单使用

    以前有接触过触发器,但没有亲自写过,所以在这里简单写个例子: 功能为:两张表t_test,t_emp;给t_test添加触发器让t_test每插入一条数据,就给t_emp中num字段值增1: 1,建立 ...