程序代码-求助! 刚开始学C++,勉强写了这个程序,希望有大神帮忙改一下下~~

问题描述

求助! 刚开始学C++,勉强写了这个程序,希望有大神帮忙改一下下~~

#include "stdafx.h"
#include "cstring"
#include "cstdio"
#include "iostream"

using namespace std;

class Vect{
private:
int *comp;//用于储存向量中的各个分量;
size_t len;//向量长度;
static int counter;//储存在Add中抛出错误的个数
public:
//平凡构造函数。数组data中的数据即为向量的每个分向量值;
Vect(size_t n=0,int *data=NULL){
if(comp!=NULL){
len=n;
*comp=*data;}
}
//复制构造函数;深复制;
Vect(){
size_t n;size_t i=0;
n=length();
for(i=0;i<n;i++){
comp[i]=comp[i];
}
}
~Vect(){}//析构函数;

         size_t length();//计算向量的长度;
         bool empty();//向量判空;
         void clear();//删除向量,并将长度置0;
         void show();//显示向量;

         //友元函数
         friend void Add(const Vect&,const Vect&,Vect&);
         friend void Throw();
         //两个向量相加,计算结果储存在v3中;如果两个向量长度不相等,则抛出异常;
         //友元结束

};
int Vect::counter=0;
size_t Vect::length(){
int i=0;
if(comp[0]!=''){
while(comp[i]!='')i++;}
else return 0;
return i;
}
bool Vect::empty(){
size_t n,i=0;
n=length();
if(comp[i]==0)i++;
if(i<n-1){
cout<<"this oprand is not empty"<<endl;
return true;}
else{
cout<<"this oprand is empty"<<endl;
return false;}
}
void Vect::clear(){
if(!empty())return;
size_t i=0,n=length();
for(i=0;i<n;i++){
comp[i]=0;
}
len=0;
return;
}
void Vect::show(){
size_t i=0,n=length();
cout<<"this vector is:(";
for(i=0;i<n-1;i++){
cout<<comp[i]<<",";}
cout<<comp[n-1]<<")";
return;
}
void Add(const Vect& v1,const Vect& v2,Vect& v3){
Vect& v11=Vect(v1);
Vect& v21=Vect(v2);
size_t n1=v11.length();
size_t n2=v21.length();
if(n1!=n2){
Throw();
++Vect::counter;}
for(size_t i=0;i<n1;i++){
v3.comp[i]=v11.comp[i]+v21.comp[i];
v3.len=n1;
}
return;
}
void Throw(){
cout<<"the two oprands have diffrent length."<<endl;
return;
}
int main(){
cout<<"hello world!"<<endl;
int d1[3]={1,2,3};
int d2[3]={2,4,3};
int d3[3]={0,0,0};
Vect v1(3,d1),v2(3,d2),v3(3,d3);
Add(v1,v2,v3);
return 0;
}
这个程序写的勉强,自知问题颇多,希望有大神能帮忙改一改,谢谢!关于好多C++类的东西,我都还不是很多,在调用的时候,不止怎么用。有些东西涉及了C,但C不是学的很踏实,希望能弥补一下~谢谢啦~

解决方案

可以先看看C++ Primer一书

时间: 2024-10-30 22:36:53

程序代码-求助! 刚开始学C++,勉强写了这个程序,希望有大神帮忙改一下下~~的相关文章

我是新手刚学verilog,自己写了段程序警告太多跪求大神指点

问题描述 我是新手刚学verilog,自己写了段程序警告太多跪求大神指点 module a(nrst,clk,a,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11);input nrst,clk;input[3:0]a;output [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0] CS,NS;parameter[3:0]IDLE=4'b0

字符串-【新手求助】为什么调试到这一行总是中断,希望大神帮我看看(代码不长)

问题描述 [新手求助]为什么调试到这一行总是中断,希望大神帮我看看(代码不长) #include #include #include struct Node; typedef struct Node *PNode; struct Node { char le[30], tran[130]; PNode link; }; typedef struct Node *LinkString; LinkString createNullDictionary(void) { LinkString pdic;

library-刚学R,没人指导,希望大神帮助。谢谢

问题描述 刚学R,没人指导,希望大神帮助.谢谢 library(affy) Error in library(affy) : there is no package called 'affy' 用的是Rstudio,怎么刚写这句话就有这种错误,是不是要下载这个affy包,再导入.但是网站上也没找到affy这个包啊. 解决方案 在Rstudio,如果输入install.packages(affy),会提示找不到包: 试一下install.packages("affy"),应该就可以了:

c语言-C语言小白请大神帮忙改一下代码,谢谢。

问题描述 C语言小白请大神帮忙改一下代码,谢谢. #include #include #include #include #include void choose();//选择函数 void shu();//猜数字函数 void paihang();//排行榜 void repaihang(int n);//更新排行榜 void replace();//初始化排行榜(没有记录时的排行榜) typedef struct { char name[10]; int score; }re; int ma

c语言-关于下面链接的专家系统的缺失代码不明白。希望大神帮忙补全。如果写注释就太感谢了

问题描述 关于下面链接的专家系统的缺失代码不明白.希望大神帮忙补全.如果写注释就太感谢了 https://www.dropbox.com/sh/1r8i36ozggxrje9/AABOHtr-N52QFPXfX0jhQacAa?dl=0

求大神解答-刚进公司,一个问题看了好久请大神帮忙看看。。。。

问题描述 刚进公司,一个问题看了好久请大神帮忙看看.... The type javax.servlet.http.HttpServletResponse cannot be resolved. It is indirectly referenced from required .class files WebContext.java /cofcoWeb_subStation/src/net/xinshi/web line 1 Java Problem 解决方案 先查看 所有的jar 是否完整,

aapt.exe应用程序错误。。clean 还有Silent修改好也没用,求大神帮忙啊

问题描述 aapt.exe应用程序错误..clean 还有Silent修改好也没用,求大神帮忙啊 解决方案 解决了,在menu中定义了item的title,但是@string的值没有在strings中定义name 解决方案二: 这个版本我用了一段时间了,本来没什么问题

CAD二次开发C#.net 想用户动态画一个矩形,然后我获得该矩形的顶点坐标,希望有大神可以给出能用的代码

问题描述 编程平台是VS2012,因为自己不是编程出身,也不需要做很深入的编程开发,所以这个不知道怎么弄的东西,希望有大神可以给一个可以用的代码段,多谢指教 解决方案 解决方案二:既然都能绘制矩形,怎么会不知道坐标呢,没坐标怎么绘制

求一个添加文章的程序代码,适合新手学习用的

问题描述 求一个添加文章的程序代码,适合新手学习用的谢谢了 解决方案 解决方案二:http://www.51aspx.com/你去下套源码吧,添加文章的有的是!解决方案三:用DetailView控件一下就搞了.解决方案四:很多源码呀解决方案五:好像一个moumou论坛,很简单解决方案六:引用1楼maco_wang的回复: http://www.51aspx.com/你去下套源码吧,添加文章的有的是! 这里真的好多哦