C++ 中重载和运算符重载加号实现矩阵相加实例代码

 C++ 重载+运算符重载加号 实现矩阵相加

学习C++ 基础知识,这里实现简单的实例,记录下自己学习生活,很简单,大家一起看看吧!

实例代码:

#include<iostream>
#include<iomanip>
using namespace std;
class Complex
{
  private:
    int i,j,n,a[2][3];
  public:
    Complex();
    Complex operator+(Complex &c);
    void display();
    void input();
} t1;

Complex::Complex()
 {
 for(int i=0;i<2;i++)
 for(int j=0;j<3;j++)
 a[i][j]=0;
 } 

 void Complex::input()
 {
  for(i=0;i<2;i++)
   for(j=0;j<3;j++)
   cin>>a[i][j];
 }
 void Complex::display()
 {
  n=1;
  for(i=0;i<2;i++)
   for(j=0;j<3;j++)
   {
    n++;
    if(n%2==0)
    cout<<endl;
    cout<<setw(5)<<a[i][j];
   }
   cout<<endl;
 }
Complex Complex::operator+(Complex &c)
{
  for(int i=0;i<2;i++)
   for(int j=0;j<3;j++)
  t1.a[i][j]=a[i][j]+c.a[i][j];
  return t1;
}

int main()
{
  Complex t2,t3,t4;
  cout<<"请输入2*3个整数"<<endl;
  t2.input();
  cout<<endl;
  cout<<"请输入2*3个整数"<<endl;
  t3.input();
  cout<<endl;
  cout<<"t2";
  t2.display();
  cout<<"t3";
  t3.display();
  t4=t2+t3;
  cout<<"t4=t2+t3=";
  t4.display();
  return 0;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 深入理解C++移位运算符

    关于逻辑移位.算术移位可参见迅雷深大笔试题部分.的一道题. 以前看到C++标准上说,移位运算符(<<.>>)出界时的行为并不确定: The behavior is undefined if the right operand is negative, orgreater than or equal to the length in bits of the promoted left operand. 我当时也没有深究过这个问题.前几天有个网友来信问起这件事,我才发现,这和Intel

  • C++中运算符 &和&&、|和|| 的详解及区别

    C++中运算符 &和&&.|和|| 的详解及区别 简介: &&是逻辑与运算符,||是逻辑或运算符,都是逻辑运算符,两边只能是bool类型 &与| 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型 区别: if (A && B) 如果 A 为 false ,整个表达式就为 false,不再计算 B 的值了. if (A & B) 如果 A 为 false ,整个表达式就为 false,但还要计算 B 的值

  • C/C++中运算符的优先级、运算符的结合性详解

    一.运算符的优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated. 意识是说优先级规定操作数的结合方式,但并未说明操作数的计算顺序.举个例子: 6+3*4+2 如果直接按照从左到右的计算次序得到的结果是:38,但是在C/C++中它的值为20.

  • C++类型转换运算符的实例详解

    C++类型转换运算符的实例详解 C++中有4个类型转换运算符,使装换过程更规范 dynamic_cast; const_cast; static_cast; reinterpret_cast; 一.dynamic_cast 该运算符我在之前的文章中已经介绍过了 http://www.jb51.net/article/123252.htm 总之,该运算符的语法如下: dynamic_cast < type-name> (expression) 如果转型失败则返回0,即空指针. 该运算符的用途是,

  • 详解C++ 拷贝构造函数和赋值运算符

    本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数.什么情况下调用赋值运算符.最后,简单的分析了下深拷贝和浅拷贝的问题. 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符.但用户可以使用delete来指定不生成拷贝构造函数和赋值运算符,这样的对象就不能通过值传递,也不能进行赋值运算. class Person { public: Person(const Person& p) = dele

  • C++中求余运算符(%)示例详解

    介绍: %是求余运算符,也叫模除运算符,用于求余数. %要求两个操作数均为整数(或可以隐式转换成整数的类型). 标准规定: 如果%左边的操作数为负数时,则模除的结果为负数或者0, 如果%左边的操作数为正数时,则模除的结构为正数或者0. 示例代码: #include<iostream> using namespace std; int main(){ char c = 253; int i =5 ; cout<<c%2<<endl; cout<<i%c<

  • 详解C++中new运算符和delete运算符的使用

    C++ 支持使用 new 和 delete 运算符动态分配和释放对象.这些运算符为来自称为"自由存储"的池中的对象分配内存. new 运算符调用特殊函数 operator new,delete 运算符调用特殊函数 operator delete. 在 Visual C++ .NET 2002 中,标准 C++ 库中的 new 功能将支持 C++ 标准中指定的行为,如果内存分配失败,则会引发 std::bad_alloc 异常. 如果内存分配失败,C 运行库的 new 函数也将引发 st

  • 浅谈C++类型转化(运算符重载函数)和基本运算符重载(自增自减)

    类型转化(运算符重载函数) 用转换构造函数可以将一个指定类型的数据转换为类的对象.但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据).在C++提供类型转换函数(type conversion function)来解决这个问题.类型转换函数的作用是将一个类的对象转换成另一类型的数据. 类型转换函数的一般形式为: operator 类型名( ){ 实现转换的语句 } 下面是简单实现.这时候,Base起了两方面的作用:类和数据类型.系统会在

  • 深入解析C++编程中的运算符重载

    C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作.例如: class complex { public: complex(double r=0.0,double I=0.0){real=r;imag=I;} void display(); private: double real; double imag; }; complex a(10,20),b(5,8); "a+b"运算如何实现?这时候我们需要自己编写程序来说明"

  • 详解C++中的函数调用和下标以及成员访问运算符的重载

    函数调用 使用括号调用的函数调用运算符是二元运算符. 语法 primary-expression ( expression-list ) 备注 在此上下文中,primary-expression 为第一个操作数,并且 expression-list(可能为参数的空列表)为第二个操作数.函数调用运算符用于需要大量参数的操作.这之所以有效,是因为 expression-list 是列表而非单一操作数.函数调用运算符必须是非静态成员函数. 函数调用运算符在重载时不会修改函数的调用方式:相反,它会在运算

随机推荐