C++类的入门

C++类

一:类的简介:

C++的类是一种用户定义的数据类型,用于封装数据和方法。它是面向对象编程的基本概念,允许程序员将数据和操作数据的方法组合在一起。类可以包含成员变量和成员函数,用于描述对象的属性和行为。通过类的实例化,可以创建对象并使用对象的方法操作数据。类是C++中面向对象编程的基础,能够提高代码的可重用性和可维护性。
从功能上来看,类有点类似于结构体,但是它们有一定的区别,主要表现为:
1.默认的不同:
c++中结构体默认为类的public属性,即允许外部使用,而类在不声明时,默认为private属性,即仅内部可用。
2.功能的不同:
类可以有访问控制修饰符,如public、private和protected,而结构体不支持。

二:类的定义:

class p {
   //类名
public:

private:
};
  1. public:public成员在类的外部可以被访问。这意味着任何对象都可以访问public成员变量和成员函数。在类的外部,可以直接使用对象名和成员名来访问public成员。
  2. private:private成员只能在类的内部访问,外部的代码不能直接访问private成员。只有类的成员函数可以访问private成员。这样可以保护数据,只允许类的内部进行操作,避免外部代码对类的数据进行不当的修改。

三:类的初始化:

3.1.在C++11及更高版本,可以在定义时直接对public成员进行初始化:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    int name;
    int age;
private:
    
};
int main() {
   
    p person1 = {
    1,2 };
    cout << person1.age;
    return 0;
}

注意:

1.系统会按照顺序对public成员进行赋值,{}内部数字不能超过public的成员数目,但是可以少于,少于自动补0。
2.外部无法访问到private,所以,该操作仅仅对public成员有效。
3.2:利用’.'直接访问成员或成员函数进行初始化:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    int name;
    int age;
    void setscore(int x) {
   
        score = x;
    }

private:
    int score;
};
int main() {
   
    p person1;
    person1.name = 1;
    person1.age = 18;
    person1.setscore(100);
    cout << person1.age;
    return 0;
}
利用这种方法进行初始化较1更加方便,且可以通过这种方法对private成员进行赋值。同理,也可以用这种方法输出private中成员的值:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    int name;
    int age;
    void setscore(int x) {
   
        score = x;
    }
    int getscore(void){
   
        return score;
    }
private:
    int score;
};
int main() {
   
    p person1;
    person1.name = 1;
    person1.age = 18;
    person1.setscore(100);
    cout << person1.getscore();
    return 0;
}
3.3:利用类的构造函数进行初始化:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    p(string name, int age) :name_(name), age_(age) {
   
        cout << name_ << age_;
    }
private:
    int score;
    int age_;
    string name_;
};
int main() {
   
    p person1("shelly", 18);
    return 0;
}
当然也可以这样写:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    p(string name, int age){
   
        name_ = name;
        age_ = age;
        cout << name_ << age_;
    }
private:
    int score;
    int age_;
    string name_;
};
int main() {
   
    p person1("shelly", 18);
    return 0;
}
还可以这样:
#include <iostream>
#include <string>
using namespace std;
class p {
   
public:
    p(string name, int age){
   
        name_ = name;
        age_ = age;
        cout << name_ << age_;
    }
private:
    int score;
    int age_;
    string name_;
};
int main() {
   
    p person1 = {
    "xlx",18 };
    return 0;
}
注意:
1.该构造函数应该在类的public部分,才能被外部使用。
2.构造函数是没有类型的。
3.构造函数的名称与类名称相同。
4.构造函数与函数一样,不能像第1种方法一样,少于参数的数量,否则会报错。且存在构造函数时,用{}进行初始化,默认是使用构造函数,而不是方法1。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 07:00:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 07:00:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 07:00:01       87 阅读
  4. Python语言-面向对象

    2024-01-24 07:00:01       96 阅读

热门阅读

  1. windows主题与壁纸所在文件夹路径

    2024-01-24 07:00:01       56 阅读
  2. C++中vector的sort用法

    2024-01-24 07:00:01       52 阅读
  3. Pillow图像处理:从零开始的奇妙之旅

    2024-01-24 07:00:01       56 阅读
  4. vb如何获取鼠标形状的特征码

    2024-01-24 07:00:01       62 阅读
  5. cherry键盘alt+tab无法切换窗口的问题解决

    2024-01-24 07:00:01       56 阅读
  6. 【apollo在springboot中运行原理】

    2024-01-24 07:00:01       59 阅读
  7. 致远OA如何开发 第八篇 新增接口

    2024-01-24 07:00:01       56 阅读
  8. Springboot 集成 Dynamic-Datasource 多数据源组件

    2024-01-24 07:00:01       54 阅读
  9. postman参数提取+加密

    2024-01-24 07:00:01       52 阅读