C++ 基础(七)C++类的定义和使用、一个类调用另一个类

主要参考:

http://c.biancheng.net/view/215.html

https://blog.csdn.net/rain722/article/details/55002321

一、C++类的定义和使用

#include "stdafx.h"
#include <iostream>
using namespace std;
class CRectangle
{
	public:
		void init(int w_, int h_); //成员函数,设置宽和高
		int area();                //成员函数, 求面积
		int perimeter();           //成员函数,求周长
	private:
		int w, h;                  //成员变量,宽和高
};                                 //必须有分号
void CRectangle::init(int w_, int h_)
{
	this -> w = w_;  this -> h = h_;
}
int CRectangle::area()
{
	return w * h;
}
int CRectangle::perimeter()
{
	return 2 * (w + h);
}

//class add
//{
//	public:
//		void addFunc(int wVar, int hVar);
//};
//
//void add::addFunc(int wVar, int hVar)
//{
//
//}

int main()
{
	int w, h;
	CRectangle  r;  //r是一个对象,相当于C#类的实例化
	cin >> w >> h;
	r.init(w, h);
	cout << "It's area is " << r.area() << endl;
	cout << "It's perimeter is " << r.perimeter();
	return 0;
}

二、一个类调用另一个类

在一个.cpp文件文件中,可以定义多个类,并且在该.CPP文件中,一个类可以访问另一个类。

参考:https://blog.csdn.net/qq_35721743/article/details/83592415

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;

class Person
{
public:
	Person(int _age, string _name) :age(_age), name(_name) {}
	~Person() {};
	void print()
	{
		cout << name << "	" << age << endl;
	}
private:
	int age;
	string name;
};
class Teacher
{
public:
	Teacher(Person* _person) :person(_person) {}
	~Teacher() {};
	void print()
	{
		this->person->print();
	}
private:
	Person* person;

};

int main()
{
	Person p(40, "lisan");
	Teacher teacher(&p);
	teacher.print();
	system("pause");
	return 0;
}

 

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在面向对象编程中,一个可以调用其他的变量。例如,如果有一个名为A的和另一个名为B的,A可以调用B中的变量。 为了调用一个的变量,A必须先创建一个B的对象。这可以通过调用B的构造函数来完成。一旦对象被创建,A就可以使用点操作符来访问B中的变量。例如,如果B中有一个字符串变量称为“name”,A可以使用以下代码来访问该变量: B b = new B(); String name = b.name; 在这里,A创建了一个新的B对象,并将其存储在变量“b”中。然后,它使用点运算符来访问B中的“name”变量,并将其存储在名为“name”的字符串变量中。 需要注意的是,如果B中的变量是私有的,则不能直接从A访问它们。在这种情况下,B必须提供公共方法来允许其他访问其变量。 总之,一个可以调用一个的变量,只需创建另一个的对象并使用点操作符来访问其中的变量。这是面向对象编程的基本概念之一。 ### 回答2: 在Java程序中,通过调用一个的变量可以实现不同之间的数据共享,提高代码的灵活性和重用性。下面是一些实现方法: 1. 继承 通过继承关系,子可以继承父的变量。比如: ``` class A { protected int a; // 父变量 } class B extends A { public void setA(int a) { this.a = a; // 继承父变量a } } ``` 在B中,通过父A的protected修饰符,可以访问到a变量。这个方法适用于在两个中,子继承父的变量。 2. 对象引用 在Java中,我们可以通过对象引用来访问该对象所属的中的变量。比如: ``` class A { protected int a; // A变量 } class B { private A a = new A(); // 对象引用 public void setA(int a) { this.a.a = a; // 访问A的变量a } } ``` 这个方法适用于在两个中,一个中包含了另一个的对象。 3. 静态变量 如果一个变量在中被static修饰,那么它可以被该的所有实例共享。可以通过名来访问静态变量。比如: ``` class A { protected static int a; // 静态变量 } class B { public void setA(int a) { A.a = a; // 访问A的静态变量a } } ``` 这个方法适用于在两个中,一个中包含了另一个的静态变量。静态变量是全局变量,通过调用名来访问,所以可以在不同的中共享数据。 综上所述,我们在Java中可以通过继承、对象引用和静态变量来实现在不同之间共享变量的目的。选择哪种方法取决于具体的情况和需求。 ### 回答3: 在面向对象编程中,一个可以通过调用一个的变量来实现对其功能的扩展或补充。在Java中,可以通过以下几种方式实现这一功能: 1. 继承 子可以继承父的变量和方法,从而获得父的功能,并可以在此基础上进行扩展。例如,假设有一个A和一个B,B要调用A的变量age,则可以定义B extends A,这样B就可以使用A中的age变量。 2. 实例化 在一个中,可以实例化另一个的对象,并通过该对象来访问其变量。例如,假设有一个A和一个B,B要调用A的变量age,则可以在B中创建一个A对象,然后通过该对象访问age变量。 3. 接口 一个可以实现一个或多个接口,从而获得接口中定义的变量和方法。例如,假设有一个接口A和一个B,B要调用A中定义的变量,则可以让B实现A接口,这样B就可以使用A中定义的变量。 无论是继承、实例化还是接口,都可以让一个调用一个的变量。不同的情况下,选择不同的方式可以根据具体的应用场景和需要选择合适的方法。例如,在需要实现高复用性和可扩展性的情况下,使用继承可以更好地满足需求;而在需要实现多态和灵活可变的情况下,选择实例化或接口可以更好地实现需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值