C++编程练习:指针、this指针与成员指针应用

版权申诉
0 下载量 123 浏览量 更新于2024-06-27 收藏 1.11MB PDF 举报
"C++编程习题,包含指针练习、this指针的使用、指向成员的指针以及数组练习" 1、指针练习 在这个练习中,我们看到了如何使用指针来操作对象的成员。`A`类有两个公有方法:`Setxy`和`Copy`,用于设置和复制对象的成员变量`x`和`y`。在`main`函数中,创建了两个`A`对象`a`和`b`,`b`通过`Copy`方法复制了`a`的值。`fun`函数接收一个`A`对象和一个指向`A`对象的指针,分别修改这两个对象的`x`和`y`。最后,`a`和`b`的`Print`方法被调用来显示它们的值,展示了指针在对象间的操作。 2、this指针 `this`指针在C++中是一个隐含的指针,它在每个非静态成员函数中都存在,指向调用该函数的对象。在本例中,`A`类有一个`Copy`成员函数,它接受一个`A`对象的引用。`this`指针被用来检查当前对象是否与传递的对象是同一个,如果是,则不进行复制操作。这样可以避免自赋值的问题。`main`函数中,`a1`和`a2`对象的`Copy`方法被调用,展示了`this`指针的应用。 3、指向成员的指针 此练习展示了如何使用指向成员的指针。`A`类有一个成员函数`fun`和一个数据成员`c`。`main`函数中,首先创建了一个`A`对象`a`,然后获取了`c`的地址并赋值给`pc`。接着,定义了一个指向成员函数`fun`的指针`pfun`,并通过`pa->*pfun(20)`调用了`a`对象的`fun`方法。这展示了C++中对成员函数和数据成员的指针操作。 4、数组练习 这个例子涉及到类的默认构造函数和带有参数的构造函数,以及类数组的初始化。`D`类有两个数据成员`d1`和`d2`,并且提供了两种构造函数。在`main`函数中,没有显示初始化的`D`对象会调用默认构造函数,而带参数的构造函数则用于初始化成员变量。这里虽然没有直接涉及数组操作,但可以引申出类数组的初始化和操作,比如动态创建和初始化类数组。 总结,这些C++习题涵盖了指针的基本使用,包括操作对象的成员、使用`this`指针避免自赋值、指向成员的指针以及类的构造函数和数组的处理。这些都是C++编程中的核心概念,对于深入理解和掌握C++语言至关重要。
2023-02-27 上传
2023-02-26 上传