美文网首页
C++语言-面向对象

C++语言-面向对象

作者: 大虾啊啊啊 | 来源:发表于2022-07-28 14:21 被阅读0次

1、C++的常量

c++中的常量是真的常量,如果放在C语言中,则可以通过指针修改,但是在C++中则会报错

//引入命名空间
using namespace std;

int main() {
    //c++中的常量
    const int number = 100;
    //不能修改
    // number = 200;
    //在C语言中能修改
//    int *number_P = &number;
//    *number_P = 300;
    cout << number << endl;

    return 0;
}

2、C++中的引用

在C语言中,我们可以通过通过指针互换两个数,在C++中,可以通过引用互换两个数,int & number,可以表示引用类型

    int number1 = 100;
    int number2 = 200;
    // changeNumberByC(&number1, &number2);
    changeNumberByCpp(number1, number2);
    cout << "number1 = " << number1 << " number2 = " << number2 << endl;

/**
 * c语言通过指针互换两个数
 * @param number1
 * @param number11
 */
void changeNumberByC(int *number1, int *number2) {
    int temp = *number1;
    *number1 = *number2;
    *number2 = temp;
}
/**
 * cpp通过引用互换两个数
 * @param number1
 * @param number2
 */
void changeNumberByCpp(int &number1, int &number2) {
    int temp = number1;
    number1 = number2;
    number2 = temp;

}
number1 = 200 number2 = 100

3、C++中的函数重载

和Java一样在C++中支持函数重载,并且支持在函数中增加默认参数这一点和Kotlin一样。C语言不支持函数重载

void add() {
    cout << "add" << endl;
}

void add(int i) {
    cout << "add:" << i << endl;
}
void d(int i,int j,int k = 100) {
    cout << "add:" << i << endl;
}


4、没有名字的函数参数

没有名字的函数参数,作为后续拓展使用,源码中常常体现。

void del(int) {
    cout << "del" << endl;
}

5、C++中的类、对象

  • 创建类的方式
    1、先创建头文件
    头文件 ,只写声明,不写实现
//
// Created by DELL on 2022/7/28.
//

#ifndef C__01_STUDENT_H
#define C__01_STUDENT_H
// Student.h 头文件  只写声明,不写实现

class Student {
private://下面的代码(成员和函数),都是私有
    char *name;
    int age;
public://下面的代码(成员和函数),都是公开
    void setName(char *name);

    char *getName();

    void setAge(int age);

    int getAge();
};


#endif //C__01_STUDENT_H

2、创建实现文件
根据 Student.h 头文件 ,写实现

//
// Created by DELL on 2022/7/28.
//

#include "Student.h"
// 根据 Student.h 头文件 ,写实现

void Student::setAge(int age) {
    // C++对象指向的是一个指针
    // -> 调用一级指针的成员
    this->age = age;
}

int Student::getAge() {
    return this->age;
}

void Student::setName(char *name) {
    this->name = name;
}

char *Student::getName() {
    return this->name;
}

  • 创建对象
    1、普通创建对象方式
//C++创建对象的方式(栈空间)
    Student student1;
    student1.setAge(29);
    student1.setName("daxiaa");
    cout << "age = " << student1.getAge() << " name = " << student1.getName() << endl;

age = 29 name = daxiaa

2、通过指针的方式创建对象
通过指针的方式创建对象,需要注意使用new 关键字创建。访问对象的属性成员的时候使用->符号

     //通过指针方式创建对象(堆空间)
    Student *student2 = new Student();
    student2->setAge(39);
    student2->setName("大侠啊啊");
    cout << "age = " << student2->getAge() << " name = " << student2->getName() << endl;
    if (student2) {
        delete student2;//必须手动释放堆空间的对象student2
        student2 = NULL;//指向NULL的地址区域
    }

age = 39 name = 大侠啊啊

C++创建对象的两种方式除了使用方式不一样之外,第一种是在栈内开辟内存空间,第二种则是在堆中开辟内存空间,因此第二种需要手动释放内存空间。

相关文章

  • 好好干

    C语言面向过程 C++面向对象

  • 慕课网-c++教程起航篇-学习笔记

    c++教程起航篇 C语言是C++的子集。 c语言是面向过程的语言,而C++是面向过程的语言又是面向对象的语言。 C...

  • C++ — 类 & 对象超详解

    C++ 类 & 对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ ...

  • CPP基础:面向对象编程

    面向对象编程 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核...

  • Python科学计算与数据处理7:类和对象

    类与对象 Python是面向对象的语言(object-oriented),同样面向对象的语言还有C++,Java等...

  • C++语言学习之面向对象

    1.C语言与C++语言的区别 C++面向对象 C 面向过程 函数+结构体 C++可以运行调用C语言 反之 C语言无...

  • C++ 面向对象

    C++ 与 C语言 区别 C++ 面向对象、标准特性; C 面向过程,函数+结构体 C++可以运行C语言,反之就不...

  • 09.类

    面向对象语言的重头戏———类 我们知道C++是一门面向对象的语言,与面向过程的语言C不同的是C++的封装,继承和多...

  • cpp面向对象

    面向对象编程 [TOC] 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 ...

  • C++简答题

    一、简答题 1、C语言与C++语言的区别? 答: C语言是面向过程语言,C++是面向对象语言(OOP) C语言...

网友评论

      本文标题:C++语言-面向对象

      本文链接:https://www.haomeiwen.com/subject/zfhxwrtx.html