1:面向对象

以codeblocks举例,在一个工程里面: File-->new -->Class可以建一个类,可以设置类的参数,是否有set get方法,有无构造函数等设置,.h文件主要用来写类的属性和

方法声明,类名.cpp文件里面实现函数,main函数里面负责对象的调用和操作。

如下:Student.h

#ifndef STUDENT_H
#define STUDENT_H
#include <bits/stdc++.h>
using namespace std;
class Student
{
public:
Student();//构造函数,进行数据的初始化
Student(string name, int age);
virtual ~Student(); string Getname() { return name; }//对类的变量进行封装,便于对私有的属性进行操作
void Setname(string val) { name = val; }
int Getage() { return age; }
void Setage(int val) { age = val; }
int* Getscore() { return score; }
void Setscore(int* val) { score = val; }
void Show(string , int );//在.h文件里面进行函数定义
protected: private://私有的属性
string name;
int age;
int* score;
}; #endif // STUDENT_H

main.cpp

#include <bits/stdc++.h>

using namespace std;
#include "Student.h"
int main()
{
Student stu1;//;自动调用无参构造函数
cout << "由构造函数初始化的年龄和姓名" <<stu1.Getage() << stu1.Getname() << endl;
Student stu2("小红",12);//有参构造函数
stu1.Show("小明",13);
return 0;
}

student.cpp

/*
* 文件名:
* 描 述:
* 作 者:
* 时 间:
* 版 权:
*/#include "Student.h"
#include <bits/stdc++.h>
using namespace std;
Student::Student()
{
name = "默认名";
age = 100;
cout << "我是(无参)构造函数" << endl;
}
Student::Student(string name,int age){
Student::Setage(age);
Student::Setname(name);
name = Student::Getname();
age = Student::Getage();
cout << "学生" <<name<< "的年龄是" << age << endl;
} Student::~Student()
{
cout << "我是析构函数,负责对象的回收" << endl;
}
void Student::Show(string name, int age)
{
cout << "学生" <<name << "的年龄是" << age << endl;
}

2:访问修饰符

通过为参数设置set和get方法进行私有属性的操作。

 #ifndef STUDENT_H
#define STUDENT_H
#include <bits/stdc++.h>
using namespace std;
class Student
{
public:
Student();//构造函数,进行数据的初始化
Student(string name, int age);
virtual ~Student(); string Getname() { return name; }//对类的变量进行封装,便于对私有的属性进行操作
void Setname(string val) { name = val; }
int Getage() { return age; }
void Setage(int val) { age = val; }
int* Getscore() { return score; }
void Setscore(int* val) { score = val; }
void Show(string , int );//在.h文件里面进行函数定义
protected: private://私有的属性
string name;
int age;
int* score;
}; #endif // STUDENT_H

3:构造与析构函数

.cpp文件

 /*
* 文件名:
* 描 述:
* 作 者:
* 时 间:
* 版 权:
*/#include "Student.h"
#include <bits/stdc++.h>
using namespace std;
Student::Student()
{
name = "默认名";
age = ;
cout << "我是(无参)构造函数" << endl;
}
Student::Student(string name1,int age1):name(name1),age(age1)//初始化列表
{
//name = name1;
//age = age1;
name = Student::Getname();
age = Student::Getage();
cout << "学生" <<name<< "的年龄是" << age << endl;
} Student::~Student()
{ cout << "我是析构函数,负责对象"<< Student::Getname()<<"的回收" << endl;
}
void Student::Show(string name, int age)
{
cout << "学生" <<name << "的年龄是" << age << endl;
}

main.cpp文件

 #include <bits/stdc++.h>

 using namespace std;
#include "Student.h"
int main()
{
Student stu1;//;自动调用无参构造函数,在栈内存中分配空间,自动调用delete回收
cout << "由构造函数初始化的年龄和姓名" <<stu1.Getage() << stu1.Getname() << endl;
Student stu2("小红",);//有参构造函数
stu1.Show("小明",); Student* stu3 = new Student("岳飞",);//在堆空间中分配内存
cout << "名字是" << stu3->Getname() << endl;
delete stu3;//需要手动调用delete释放内存 return ;
}

栈空间对象自动释放,通过new占用的堆空间需手工delete释放,析构函数只有一个,不能重载。

4:this指针

(*this)返回的是类对象本身。

this的一个总结

面向对象_访问修饰符_构造与析构函数_this指针的更多相关文章

  1. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

  2. C#面向对象 (访问修饰符、封装、继承、多态)

    先看一下创建一个新项目时的基本格式 using System; using System.Collections.Generic; using System.Linq; //引用的命名空间 using ...

  3. C#面向对象16 访问修饰符

    C# 访问修饰符 public:公开的公共的 private:私有的,只能在内部类中访问 protected:受保护的,子类可以访问和类的内部 internal:只能在当前项目/程序集中访问.在同一项 ...

  4. C# JAVA成员访问修饰符比较

    在面向对象的访问修饰符中常用的有public ,private ,protected C# 访问修饰符: private < protected internal < internal/p ...

  5. 面向对象php基本格式、构造、析构、访问修饰符

    <?php//面向对象//1.类//由众多的对象抽象出来的 //2.对象//一切皆对象//由类实例化出来的 //基本形式class 类名{ 成员变量 成员方法 } $对象名 =new 类名 $对 ...

  6. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  7. C# partial修饰符_分部类_分部方法

    今天翻了翻书,发现自己还是遗留下不少基础性的东西,老实说,不管一些基础的东西用到不用到都很应该了解,因为基础毕竟学习量不是很大. 一.分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多 ...

  8. JAVA面向对象-----访问修饰符

    访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...

  9. JavaSE基础知识(5)—面向对象(5.3访问修饰符)

    一.说明 访问修饰符可以用于修饰类或类的成员(属性.方法.构造器.内部类) 二.特点   名称 本类 本包 其他包的子类 其他包的非子类 private 私有的 √ × × × 缺省 默认 √ √ × ...

随机推荐

  1. Codeforces 166B - Polygon (判断凸包位置关系)

    Codeforces Round #113 (Div. 2) 题目链接:Polygons You've got another geometrical task. You are given two ...

  2. haproxy Mycat集2---KeepAlived

    KA 配两台 MASTER,BACKUP节点 安装Keepalived 1.下载安装依赖包 yum install -y wget make gcc openssl-devel popt-devel ...

  3. CSS 命名规范将省下调试时间

    我听说很多开发者厌恶 CSS.而在我的经验中,这往往是由于他们并没有花时间来学习 CSS. CSS 算不上是最优美的『语言』,但迄今二十多年来,它都是美化 web 举足轻重的工具.从这点来说,也还算不 ...

  4. 网页开发人员收藏的16款HTML5工具

    本文收集的20款优秀的 HTML5 Web 应用程序,值得添加到您的 HTML5 的工具箱中,他们能够帮助你开发前端项目更快.更容易. Initializr Initializr 是一个可以让你创建 ...

  5. flutter 底部bottomNavigationBar凸起效果

    概要 最近在做flutter 的时候,之前看到想实现 底部导航栏中间按钮 凸起效果, 最近想做又突然找不到方案了,因此记录下这里的实现方式. 预览效果 代码 主要使用 BottomAppBar 组建, ...

  6. 基于Mina的Http Server以及简单的Http请求客户端

    目的:    Java平台下的内部组件之间的通信.    1.WebService 由于感觉本身Java平台下的Web Service标准就不够统一,相互之间的调用就会有一些问题,更不用说与.net等 ...

  7. JS对象 返回/设置时间方法 get/setTime() 返回/设置时间,单位毫秒数 一小时为:60*60*1000

    返回/设置时间方法 get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数. 如果将目前日期对象的时间推迟1小时,代码如下: &l ...

  8. cpu子系统(优化)

    如果业务已经在线上,你要优化,第一步如何做 首先进行服务器数据采集,和性能监测分析 一:使用cacti,nagios,zabbix 等监控工具 二:使用linux 自带的一些监控指令:vmstat,i ...

  9. 如何使用flow进行静态类型检查

    Flow 是 facebook 出品的 JavaScript 静态类型检查⼯具.Vue.js 的源码利⽤了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. 为什么⽤ Flow? ...

  10. 微信小程序为什么看不到所有的console.log()的日志信息

    记录一个巨傻无比的问题 1.在首页的onLoad()函数里面,加了地理位置的加载,并打印到控制台上,可是今天就是没出现 2.然后纳闷的很久,各种google,发现没有人遇到这个问题 3.再然后,我就看 ...