面向对象_访问修饰符_构造与析构函数_this指针
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 ;
}

4:this指针

(*this)返回的是类对象本身。
面向对象_访问修饰符_构造与析构函数_this指针的更多相关文章
- Java学习笔记:04面向对象-内部类_访问修饰符_final
04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...
- C#面向对象 (访问修饰符、封装、继承、多态)
先看一下创建一个新项目时的基本格式 using System; using System.Collections.Generic; using System.Linq; //引用的命名空间 using ...
- C#面向对象16 访问修饰符
C# 访问修饰符 public:公开的公共的 private:私有的,只能在内部类中访问 protected:受保护的,子类可以访问和类的内部 internal:只能在当前项目/程序集中访问.在同一项 ...
- C# JAVA成员访问修饰符比较
在面向对象的访问修饰符中常用的有public ,private ,protected C# 访问修饰符: private < protected internal < internal/p ...
- 面向对象php基本格式、构造、析构、访问修饰符
<?php//面向对象//1.类//由众多的对象抽象出来的 //2.对象//一切皆对象//由类实例化出来的 //基本形式class 类名{ 成员变量 成员方法 } $对象名 =new 类名 $对 ...
- 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)
译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...
- C# partial修饰符_分部类_分部方法
今天翻了翻书,发现自己还是遗留下不少基础性的东西,老实说,不管一些基础的东西用到不用到都很应该了解,因为基础毕竟学习量不是很大. 一.分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多 ...
- JAVA面向对象-----访问修饰符
访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...
- JavaSE基础知识(5)—面向对象(5.3访问修饰符)
一.说明 访问修饰符可以用于修饰类或类的成员(属性.方法.构造器.内部类) 二.特点 名称 本类 本包 其他包的子类 其他包的非子类 private 私有的 √ × × × 缺省 默认 √ √ × ...
随机推荐
- 干货:Java技术栈18年02月精彩好文汇总
一晃眼,一个月过去了,新年也过完了. 一晃眼,又老了一岁了,感觉新的一年压力更大了. 我们也该为这一个月的技术做做汇总了,错过的同学正好可以统一回顾看看,已经看过的同学也可以再温习一下.. Java技 ...
- DRF的序列化组件
目录 DRF的序列化组件 Serializer组件 序列化 反序列化 ModelSerializer组件 序列化和反序列化 自定义Response方法 基表相关 DRF中ORM的多表关联操作 外键设计 ...
- NFS服务器简易安装
1.服务端 创建挂载目录 # mkdir /data/nfs 安装NFS软件 # yum install nfs-utils -y 添加配置信息 # vim /etc/exports /data/nf ...
- java_函数式编程写法
package cn.aikang.Test; import org.junit.Test; import java.util.Scanner; import java.util.function.S ...
- SQL Server实现跨库查询(跨库select insert)
方法一: select * from servername.dbo.tablename 方法二: select * from OPENDATASOURCE( 'SQLOLEDB', ...
- Pod 私有仓库构建
Pod 私有仓库构建 创建`私有仓库索引库`(iOS) 添加`私有仓库索引库`到本地repo管理 创建自己的`组建库工程 上传`组建库工程`到`私有仓库索引库` App工程调用`组建库工程` 目的 私 ...
- 重写(Overriding)和重载(Overloading)
方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. (1)方法重载是一个类中定义了多 ...
- [JZOJ4665] 【GDOI2017模拟7.21】数列
题目 题目大意 给你一个数列,让你找到一个最长的连续子序列,满足在添加了至多KKK个数之后,能够变成一条公差为DDD的等差数列. 思考历程 一眼看上去似乎是一道神题-- 没有怎么花时间思考,毕竟时间都 ...
- iOS UIWebView获取403/404
问题描述 与WindowsPhone不同,iOS UIWebView并不认为403/404这种情况下页面访问是失败的,这也情有可原,但有时候,我们需要对WebView所遇到的403/404进行处理. ...
- VS2010-MFC(图形图像:GDI对象之画刷CBrush)
转自:http://www.jizhuomi.com/software/248.html 上一节讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. ...