[英]Using the Matrix operations of OpenCv (Addition and Subtraction) OpenCV C++
[英]Number addition and subtraction in c++ classes
好的,所以我想让我的程序正常工作,似乎出了点问题,但是我不知道为什么。 你们能看一下,告诉我怎么了吗?
问题是:减法将无法正常工作:c
这是Main函数(NumberProject.cpp)的代码:
// NumberProject.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <iostream>
#include "Number.h"
using namespace std;
int main( ) {
// Variable and Object Declarations
char answer;
bool goAgain = true;
int integerValue;
Number numberA; // Invoke the default constructor.
Number numberB; // Invoke the default constructor.
// User loop
while ( goAgain ) {
cout << "Enter an integer: ";
cin >> integerValue;
numberA.Set( integerValue );
cout << "Enter an integer: ";
cin >> integerValue;
numberB.Set( integerValue );
cout << endl;
// Addition
numberA.Add( numberB );
cout << "Addition: ";
numberA.Output( );
// Subtraction
numberA.Subtract( numberB );
cout << "Subtraction: ";
numberB.Output( );
// User loop termination code.
cout << "Would you like to continue? (y/n)" << endl;
cin >> answer;
if ( answer == 'n' )
goAgain = false;
} // while
return 0;
} // Function main( )
Number.cpp(类):
#include "StdAfx.h"
#include "math.h" // Needed for sqrt and pow.
#include <string>
#include <iostream>
#include "Number.h"
using namespace std;
Number::Number( void ) {
number = 0;
}
Number::Number( int integerValue ) {
number = integerValue;
}
Number::~Number( void ) {
}
int Number::Get( ) {
return number;
}
void Number::Set( int integerValue ) {
number = integerValue;
}
void Number::Output( ) {
cout << number << endl;
cout << endl;
}
void Number::Add( Number otherNumber ) {
number = number + otherNumber.Get();
}
void Number::Subtract( Number otherNumber ) {
number = number - otherNumber.Get();
}
Number.h:
#pragma once
class Number {
public:
Number( void );
Number( int );
~Number( void );
int Number::Get( ); // Accessor
void Number::Set( int ); // Mutator
void Number::Output();
void Number::Add( Number );
void Number::Subtract( Number );
private:
int number;
}; // Class Number
numberA.Subtract( numberB );
cout << "Subtraction: ";
numberB.Output( );
您输入的号码错误。 您要打印numberA
。
numberA.Subtract( numberB );
cout << "Subtraction: ";
numberA.Output( ); // <-- here
同样,当您进行初始加法时,您正在更新numberA
的内存中值; 当您进行减法运算时, numberA
将已经具有numberA
+ numberB
的总和。
因此,当您执行numberA
- numberB
,您将必须保留numberA
值的numberA
,而不是保存它的值。 尝试这个:
int Number::Add(Number otherNumber) {
return number + otherNumber.Get();
}
int Number::Subtract(Number otherNumber) {
return number - otherNumber.Get();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.