数据结构实验一(类模板与多文件结构) 终于补上...

《数据结构》实验一:VC编程工具的灵活使用

一..实验目的

     复习巩固VC编程环境的使用,以及C++模板设计。

1.回顾并掌握VC单文件结构程序设计过程。

2.回顾并掌握VC多文件工程设计过程

3.掌握VC程序调试过程。

4.回顾C++模板和模板的程序设计。


二.实验内容

3.使用一个类来实现上述功能。要求:

  1)使用类模板

  2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。

3..第三个程序代码如下:

Node.h

#ifndef Node_H
#define Node_H
template <typename T>//类属参数T
class M//类定义体
{public:
T add(T x,T y);
T multiply (T x,T y);
};
#endif

Node.cpp

#include"Node.h"
template<typename T>
T M<T>::add(T x,T y)//返回类型 类名 成员函数(形参表)
{
return x+y;}
template<typename T>
T M<T>::multiply(T x,T y)
{
return x*y;
}

Node_main.cpp

#include<iostream>
#include"Node.h"
#include<stdlib.h>
#include<iomanip>
using namespace std;
template<typename T>
T M<T>::add(T x,T y)//返回类型 类名 成员函数(形参表)
{
return x+y;}

template<typename T>
T M<T>::multiply(T x,T y)
{
return x*y;
}
int main()
{
M<int> x;
M<float>y;
int a,b;
float c,d;
cout<<"请输入两个整数:";
cin>>a>>b;
cout<<"请输入两个浮点型的数:";
cin>>c>>d;
cout<<"两整数和为:"<<x.add(a,b)<<endl;
cout<<"两整数积为:"<<x.multiply(a,b)<<endl;
cout<<"两小数和为:"<<y.add(c,d)<<endl; 
    cout<<"两小数积为:"<<y.multiply(c,d)<<endl;
return 0;

}

多文件结构:



编译结果:



 

编译过程的一些问题:

1.将代码保存再次打开后左侧的文件观察列表无法显示工作区间:


虽然知道了这个按键可以打开列表但工作区间还是空白的

2.在源程序文件Node_main.cpp与Node.cpp文件中有代码是重复的

template<typename T>

T M<T>::add(T x,T y)//返回类型 类名 成员函数(形参表)

{
return x+y;}
template<typename T>
T M<T>::multiply(T x,T y)
{
return x*y;
}

若将Node_main.cpp中的这段成员函数的定义删去,则会有这样的错误:

网上查了查还是不懂,在这里请教明哥...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值