《电路计算C++与MATLAB》学习笔记(一)

来源:互联网 发布:现在开淘宝店晚吗 编辑:程序博客网 时间:2024/06/05 12:39

附录A 利用C++编写的若干通用程序实践

vector.cpp

#include "stdafx.h"#include <iostream>//源程序采用#include <iostream.h>using namespace std;#include <stdlib.h>class vector {int size; float *p;public:int ub;//上界(upper bound)=size-1vector() {size = 10;p = new float[size];//开辟大小为size的实数空间,并用指针p指向它ub = size - 1;}vector(int n){if (n < 0) { cerr << "illegal vector size" << n << "\n"; exit(1); }size = n; p = new float[size]; ub = size - 1;}/*vector(n)*/~vector() { delete p; }float&operator[](int iv){if (iv >= 0 && iv <= ub)return p[iv];else {cerr << "illegal vector element\n"; exit(1);}}/*float&*/};/*class vector*///测试class vectorvoid main(){vector a(3); vector b;vector &c = b;//对象c引用b,即c和b完全相同a[0] = 4.5; b[0] = a[0]; cout << b[0];b[1] = 6.7; cout << " " << c[1] << endl;cin >> b[3];cout << "c[3]=" << c[3] << endl;cin >> a[3];//a[3]超界,所以输出illegal vector element//b[3]输入数据为8.8}

经过在visual studio 2017 community运行测试发现有一些问题;
问题1、源程序采用#include <iostream.h>的头文件,程序报错,此为C的风格,改为

#include <iostream>using namespace std; 

问题2、在F5调试的过程中,出现warning

c:\users\jacon\source\repos\vector.cpp\vector.cpp\vectorcpp.cpp(35): warning C4305: “=”: 从“double”到“float”截断
经查找书籍和网上搜索

float *p;//定义指向float型的指针p,p = new float[size];//开辟大小为size的float型数组

而在a[0]与b[1]的赋值中,均未指定数据类型,所以改为

a[0]=4.5f;b[1]=6.7f;

再次运行调试,发现warning消失

问题3、文件不能包含在当前代码页中表示的字符

c:\users\jacon\source\repos\vector.cpp\vector.cpp\vectorcpp.cpp : warning C4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

这里感谢“劲草浅躬行”的博客http://blog.csdn.net/lcb_coconut/article/details/76136725
之后再运行调试,就发现不会出现warning C4819