📜  C++ |类和对象|问题4(1)

📅  最后修改于: 2023-12-03 14:39:54.169000             🧑  作者: Mango

C++ | 类和对象 | 问题4

在C++中,类是一种用户自定义的数据类型。它允许程序员定义一组数据成员和成员函数,这些函数可以在对象上调用,以实现特定的行为。类的主要目的是将数据与操作数据的代码组合在一起,以便更好地封装和重用代码。

类的定义

类的定义以关键字class开头,后面跟着类名和一对花括号。类名通常使用大写字母开头。在花括号中,可以定义成员变量和成员函数。

class MyClass{
public:
    //成员变量
    int x;
    int y;

    //成员函数
    void print();
};

在上面的示例中,我们定义了一个名为MyClass的类,它具有两个整数成员变量x和y,以及一个成员函数print。

类的成员函数可以在类定义内部或类定义外部实现。在内部实现的成员函数通常被称为“内联函数”。

class MyClass{
public:
    //成员变量
    int x;
    int y;

    //成员函数
    void print(){
        cout << "x = " << x << endl;
        cout << "y = " << y << endl;
    }
};

//在类定义外部实现成员函数
void MyClass::print(){
    cout << "x = " << x << endl;
    cout << "y = " << y << endl;
}
类的对象

类的对象可以像其他数据类型一样进行声明和初始化。可以使用类名来声明类的对象,并使用构造函数将其初始化。

MyClass obj1;  //默认构造函数
MyClass obj2(1,2);  //自定义构造函数

可以使用成员选择运算符.来访问类的成员变量和成员函数。

obj1.x = 10;
obj1.y = 20;
obj1.print();

/*
输出结果:
x = 10
y = 20
*/
友元函数

类成员函数只能访问其所属类的成员变量和成员函数。如果想访问其他类的私有变量和函数,可以使用友元函数。

友元函数是一种非成员函数,它可以访问类的私有成员。要创建友元函数,请将其声明为类的友元函数。

class MyClass{
private:
    int x;

public:
    MyClass(int val) : x(val) {}

    friend void printX(MyClass obj);
};

void printX(MyClass obj){
    cout << "x = " << obj.x << endl;
}

在上面的示例中,我们定义了一个名为printX的函数,其参数为MyClass的对象。我们将其声明为MyClass的友元函数,并在函数体内访问了其私有成员变量x。

可以使用这种方式来访问其他类的私有成员,但要注意控制访问权限,避免数据泄露和不必要的错误。