详细讲解如何在ubuntu中编写一个c++的类A,具有私有的数据成员i(为int型)构造函数 析构函数以及函数成员dispA()用来打印数据成员i保存为a.h和a.cpp
时间: 2023-04-10 21:02:31 浏览: 104
好的,我可以回答这个问题。在Ubuntu中编写一个C++的类A,具有私有的数据成员i(为int型),构造函数,析构函数以及函数成员dispA()用来打印数据成员i,可以按照以下步骤进行:
1. 打开终端,进入到你想要保存代码的目录下。
2. 创建一个名为a.h的头文件,输入以下代码:
```
#ifndef A_H
#define A_H
class A {
private:
int i;
public:
A(int i);
~A();
void dispA();
};
#endif
```
3. 创建一个名为a.cpp的源文件,输入以下代码:
```
#include "a.h"
#include <iostream>
A::A(int i) {
this->i = i;
}
A::~A() {}
void A::dispA() {
std::cout << "i = " << i << std::endl;
}
```
4. 在终端中输入以下命令编译代码:
```
g++ -c a.cpp
```
5. 编译成功后,输入以下命令生成可执行文件:
```
g++ -o main main.cpp a.o
```
6. 最后,在终端中输入以下命令运行程序:
```
./main
```
这样就可以在Ubuntu中编写一个C++的类A,具有私有的数据成员i,构造函数,析构函数以及函数成员dispA()用来打印数据成员i了。
相关问题
ubuntu中编写一个c++的类A,具有私有的数据成员i(为int型)构造函数 析构函数以及函数成员dispA()用来打印数据成员i保存为a.h和a.cpp
好的,以下是类A的完整代码:
a.h:
```
#ifndef A_H
#define A_H
class A {
private:
int i;
public:
A();
~A();
void dispA();
};
#endif
```
a.cpp:
```
#include "a.h"
#include <iostream>
A::A() {
i = 0;
}
A::~A() {}
void A::dispA() {
std::cout << "i = " << i << std::endl;
}
```
在Ubuntu中,您可以使用以下命令编译:
```
g++ -c a.cpp -o a.o
```
这将生成一个名为a.o的目标文件。如果您想将类A包含在您的C++程序中,您可以使用以下命令:
```
g++ main.cpp a.o -o program
```
这将生成一个名为program的可执行文件,其中包含了类A的定义。
在ubuntu终端建立一个文件夹 makefileTest,并进入其中,编写 3 个存在包含关系的 .c 或 .cpp 文件,使用 makefile 管理工程,比如: 编写一个C++ 的类A,具有私有的数据成员 i(为 int 型)、构造函数、析构函数,以及函数成员 dispA(),用来 打印数据成员 i,保存为 a.h 和 a.cpp ; 编写一个C++的类 B,具有私有的数据成员 j(为 int 型)和私有数据成员 a1(为类A的对象) ,具有相应构造 函数、析构函数,以及函数成员 dispB(),用来打印数据成 员 j,以及 a1.i。将该类分别保存为 b.h 和 b.cpp 新建 main.cpp,生成 B 的对象。
好的,让我来回答你的问题。
首先,我们可以使用以下命令在 Ubuntu 终端中建立一个名为 makefileTest 的文件夹,并进入其中:
```
mkdir makefileTest
cd makefileTest
```
接下来,我们可以编写三个存在包含关系的 .cpp 文件,分别为 a.cpp、b.cpp 和 main.cpp。其中,a.cpp 和 b.cpp 分别对应题目中的类 A 和类 B,而 main.cpp 则用于生成 B 的对象。
下面是 a.cpp 的代码:
```cpp
#include "a.h"
#include <iostream>
A::A(int i) : i(i) {}
A::~A() {}
void A::dispA() {
std::cout << "i = " << i << std::endl;
}
```
接下来是 b.cpp 的代码:
```cpp
#include "b.h"
#include <iostream>
B::B(int j, int i) : j(j), a1(i) {}
B::~B() {}
void B::dispB() {
std::cout << "j = " << j << ", a1.i = ";
a1.dispA();
}
```
最后是 main.cpp 的代码:
```cpp
#include "b.h"
int main() {
B b(2, 3);
b.dispB();
return 0;
}
```
接下来,我们可以编写一个名为 Makefile 的文件,用于管理工程。Makefile 的内容如下:
```makefile
CC = g++
CFLAGS = -c -Wall
LFLAGS = -Wall
all: main
main: a.o b.o main.o
$(CC) $(LFLAGS) a.o b.o main.o -o main
a.o: a.cpp a.h
$(CC) $(CFLAGS) a.cpp
b.o: b.cpp b.h a.h
$(CC) $(CFLAGS) b.cpp
main.o: main.cpp b.h
$(CC) $(CFLAGS) main.cpp
clean:
rm -rf *.o main
```
最后,我们可以使用以下命令编译并运行程序:
```
make
./main
```
程序的输出应该为:
```
j = 2, a1.i = i = 3
```
希望我的回答能够帮助到你。