面向对象_访问修饰符_构造与析构函数_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 私有的 √ × × × 缺省 默认 √ √ × ...
随机推荐
- AtCoder ABC 131E Friendships
题目链接:https://atcoder.jp/contests/abc131/tasks/abc131_e 题目大意 给定 N 和 K,要求构造有 N 个点,恰有 K 对点,它们的最短距离为 2 的 ...
- 获取从天气预报接口返回回来的json数据
搬迁到了我的新博客中 ==> http://www.suanliutudousi.com/2017/08/26/%E8%8E%B7%E5%8F%96%E4%BB%8E%E5%A4%A9%E6%B ...
- numpy基本函数
在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...
- mysql实现访问审计
mysql的连接首先都是通过init_connect初始化,然后连接到实例. 我们利用这一点,通过在init_connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能 ...
- 科普帖:深度学习中GPU和显存分析
知乎的一篇文章: https://zhuanlan.zhihu.com/p/31558973 关于如何使用nvidia-smi查看显存与GPU使用情况,参考如下链接: https://blog.csd ...
- C++中的指针(*)、引用(&)、const详解(一、定义变量)
一.前言 本人作为一个工作了5年的程序员,程序生涯最初是从c/c++开始的,但是始终不能很熟悉的理解c语言中的指针和c++中的引用,归其原因,一部分自己没有静下心来思考,一部分原因是其自身的复杂性. ...
- JVM基本知识总结
大概两三个月之前阅读了<深入理解Java虚拟机>(周志明著),也为了加深印象,这里简单的做下总结,想完整点了解JVM知识的也可以阅读本书,书写的不错,相当通俗易懂. 第一部分 内存管理机制 ...
- web项目中使用的协议
DNS协议 1.DNS协议的作用是将域名解析为IP,网络上的每个站点的位置是用IP来确定的,访问一个网站首先就要知道它的IP,不过数据组成的IP记起来不方便,所以就使用域名来代替IP,由于IP和域名的 ...
- JS对象 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
返回指定的字符串首次出现的位置 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(substring, startpos) 参 ...
- Python: map和reduce
可以先google一篇论文:MapReduce: SImplified Data Processing on Large Clusters 1. map map()函数接收2个参数:一个是函数,一个是 ...