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

111 阅读1分钟

Android Ndk 学习笔记(目录)

1 C++标准支持 C++的通用库

 #include <iostream> 

2 命名空间 C++ 的特性

using namespace std; 

3 C++ 里面可以调用 C 语言 反之不行

4 输出打印

void funtion04(){
    cout << "Hello  C++" << endl ;

    // cout 输出的指令 ,类似C语言的 printf
    cout << "第二条 ++" ;
    cout << "第三条 ++" ;

    //  << endl  类似C语言的 \n ;
    cout << endl ;

    // 输入内容 << 后跟字符串 ,多个字符串可以通过 多个<< 拼接
    cout << "拼接第一条 ,- " << "拼接第二条。";

    // 任意地方 输入 << endl 都会换行
    cout << endl <<"第一次换行" << endl << "第二次换行";
}
 E:\C\Project\C++\cmake-build-debug\C__.exe
     Hello  C++
     第二条 ++第三条 ++
     拼接第一条 ,- 拼接第二条。
     第一次换行
     第二次换行
     Process finished with exit code 0

5 C++ 中的常量无法更改 C语言可以
在这里插入图片描述
6 C++ 中的数字的交换,通过引用

void numberChangeForC_add_add(int & number , int & number2){
    int temp = number;
    number = number2;
    number2 = temp;
}
void funtion06(){
    int number = 100;
    int number2 = 200 ;
    numberChangeForC_add_add(number,number2);
    cout << "number = " << number << "   number2 = " << number2 << endl ;
}
E:\C\Project\C++\cmake-build-debug\C__.exe
number = 200   number2 = 100

Process finished with exit code 0

6.2 C中的数字的交换,通过指针操作

void numberChangeForC(int * number , int * number2){
    int temp = * number ;
    * number = *number2 ;
    *number2 = temp ;
}

void funtion06_2(){
    int number = 100;
    int number2 = 200 ;
    numberChangeForC(&number,&number2);
    cout << "number = " << number << "   number2 = " << number2 << endl ;
}
E:\C\Project\C++\cmake-build-debug\C__.exe
number = 200   number2 = 100

Process finished with exit code 0

7 引用的原理

void funtion07(){
    int number = 100;
    // 引用 可以理解为定义一个新的别名 ,让然指向之前的地址 。
    int & num3 = number ;
    // 多个引用也会指向同一个地址
    int & num4 = number ;
    cout << "number = " << number << endl ;
    cout << "num3 = " << num3 << endl ;
    cout << "num4 = " << num4 << endl ;
    // 对其中一个进行修改,所有引用于原值都会改变
    num3 = 200;
    cout << "number = " << number << endl ;
    cout << "num3 = " << num3 << endl ;
    cout << "num4 = " << num4 << endl ;
}
E:\C\Project\C++\cmake-build-debug\C__.exe
number = 100
num3 = 100
num4 = 100
number = 200
num3 = 200
num4 = 200

Process finished with exit code 0

8 C++ 中 const Person & person 为常量引用 ,该变量无法修改只能使用
在这里插入图片描述
9 C语言是不支持函数重载的 C++支持

int add(int number1, int number2) {
    return number1+number2;
}

int add(int number1, int number2, int number3) {
    return number1+number2+number3;
}

int main(){

    int a = add(1,2);
    int a2 = add(1,2,3);

    cout << "a = " << a << endl;
    cout << "a2 = " << a2 << endl;
    return 0 ;
}
E:\C\Project\C++\cmake-build-debug\C__.exe
a = 3
a2 = 6

Process finished with exit code 0

10 C++ 中函数支持 默认值 (默认值 重构是 部分时候会有冲突)

int add(int number1, int number2 = 20, int number3 = 30,int number4 = 40) {
    return number1+number2+number3+number4;
}

int main(){

    int a = add(7,2);
    int a2 = add(1,2,3);
    int a3 = add(5);
    cout << "a = " << a << endl;
    cout << "a2 = " << a2 << endl;
    cout << "a3 = " << a3 << endl;
    return 0 ;
}
E:\C\Project\C++\cmake-build-debug\C__.exe
a = 79
a2 = 46
a3 = 95

Process finished with exit code 0

10 C++ 定义函数 (为以后扩展)

// 前期先抽象出现,我后面再升级
// 后面你可以扩展
void JNIMethod(double, double, int, int) {

}

11 C++ 中 实现一个类需要实现 .h/.hpp 文件头 和 .cpp 实现类

PersonClass.h

//
// Created by admin on 2021/7/26.
//

#ifndef C___PERSONCLASS_H
#define C___PERSONCLASS_H


class PersonClass {

private:
    char * name ;
    int age ;

public:
    void setName(char * name);
    void setAge(int age);
    char * getName();
    int getAge();

};


#endif //C___PERSONCLASS_H
PersonClass.cpp

//
// Created by admin on 2021/7/26.
//

#include "PersonClass.h"

void PersonClass::setName(char * name){
    this->name = name;
}
void PersonClass::setAge(int age){
    this->age = age;
}
char * PersonClass::getName(){
    return this->name;
}
int PersonClass::getAge(){
    return this->age;
}
#include "PersonClass.h"


void funtionPerson(){

    /*
     *  栈空间内操作值
     */
    PersonClass per ;

    per.setAge(34);
    per.setName("桃白白");

    cout << "姓名 : " << per.getName() << "    年龄 :" << per.getAge() << endl;


    /*
     * 堆空间内操作值
     */
    PersonClass * newPer = new PersonClass();

    newPer->setName("欧安安");
    newPer->setAge(12);

    cout << "姓名 : " << newPer->getName() << "    年龄 :" << newPer->getAge() << endl;

    // 不能与0 或 NULL 则回收内存
    if (newPer){
        delete newPer;
        newPer = NULL ;
    }



}
E:\C\Project\C++\cmake-build-debug\C__.exe
姓名 : 桃白白    年龄 :34
姓名 : 欧安安    年龄 :12

Process finished with exit code 0