C/C++ :: Overload Two Different Operators One Inside Class And Other Outside Using Friend
Nov 23, 2014
I'm trying to understand the basics of oop ...
#include <iostream>
using namespace std;
template <typename T>
class max_vector {
private:
T* elemente;
int lungime;
[Code] ....
The purpose of this program is to overload two different operators one inside the class, and the other one outside using friend. The problem is that i get 1 error at the '*' one.
View 1 Replies
ADVERTISEMENT
Sep 19, 2013
The code below doesn't compile. Two things to clear up:
1) I know x is going to be garbage.
2) I used the same type name label ElementType.
#include <iostream>
#include <ostream>
template <typename ElementType>
class Example {
[Code] .....
View 3 Replies
View Related
Dec 14, 2014
Is is possible to force derived classed to overload certain operators, like we do with pure virtual functions?
Is this possible to dynamically bind objects to their respective overloaded operators?
I am getting errors with undefined references to my base class vtable when I hackly try to overload: Code: operator+ I am not sure whether this is possible.
View 7 Replies
View Related
Dec 26, 2014
I want to overload prefix and postfix increment(++) operators with friend function. I also have to use the constructors for this. How can I do this? in C++
View 4 Replies
View Related
Nov 9, 2013
Consider the following program below, which compiles without a hitch on MinGW GCC 4.8.1:
template <typename T>
class Outer {
class Nested1 {};
template <typename U>
class Nested2
[Code] .....
Is there any way I can move the definition of func outside of the class?
View 1 Replies
View Related
Mar 9, 2013
I need understanding this block of code, particularly this line : *getLeftChild() { return this - _child; }
Code:
public class UpperNode {
BOX _box;
int _child;
FORCEINLINE UpperNode *getLeftChild() { return this - _child; }
...
};
Here I have this function:
Code:
void
UpperNode::visulization(int level) {
if (isLeaf())
_box.visulization();
else
if ((level > 0)) {
[Code] .....
It also makes calls for "getLeftChild()";
But I see that getLeftChild expects function pointer, and I absolutely have no clue where "this" comes from inside function body.
(return this - _child) - "this" has to be integer.
Or, if we gave pointer, and "this" is referring to some UpperNode, then I can't understand to which one, I have no UpperNode array defined or something. So if this functions is actually scaling pointer address, then scaling where to? I could comprehend it, if I had some array of UpperNodes, but not just class. I have UpperNodes array defined in other friendly class, but don't think they are related .....
View 2 Replies
View Related
Feb 1, 2014
I want to be able to do
someFunction(MyObject)
rather than
someFunction(MyObject.getWhatIWant())
I know I can do &MyObject, MyObject() and MyObject[0] by overloading operators but is it possible with just plain old MyObject?
this is assuming that I have no access to someFunction(), i.e, it cannot be modified.
View 7 Replies
View Related
Jun 21, 2013
Firstly, is it legal to overload a template function in a class? This is what I did
class FILE_txt
{
public:
FILE_txt(const char* );
[Code]....
View 19 Replies
View Related
Oct 3, 2014
I have made a custom class matrices class which allows me to add, multiply, subtract (etc.) matrices. I have the following method for multiplication but I get an error that says
'invalid use of 'this' outside of a non-static member function'
How can I refer to the current instance without getting this error.
void operator *(Matrices& matrix2) {
this.multiplyMatrix(matrix2);
}
View 2 Replies
View Related
Nov 11, 2014
I am stucked in a problem of overloading arithmetic operators such as "+,*" for a class in the form
class Point {
int N; // dimension of the point
double *Pos; // length of N
}
My assign operator is :
Point& Point::operator= (const Point& pt) {
N= pt.N;
if(Pos == NULL) Pos = new double[N];
memcpy(Pos, pt.Pos, N*sizeof(double));
[Code] ....
The add operator "+" is:
Point operator+( const Point& pt1, const Point& pt2 ) {
Point ptr = Point(pt); // this is a constructor
for (int i=0; i<pt1.N; i++) ptr.Pos[i] += pt2.Pos[i];
return ptr;
}
Based on the above overloading, What I am going to do is :
P = alpha*P1 + beta*P2; // alpha and beta are double constants, P1 and P2 are Points objes
It is ok with Intel C++ 14.0 compiler, but does not work with the microsoft visual c++ 2012 compiler in debug mode in visual studio 2012.
I stepped in those operators and found that visual c++ compiler deconstructs the ptr in operators "*" and "+" before its return while intel c++ finished the operation P = alpha*P1 + beta*P2; and delete those ptrs at last.
Portability of my operator overloading is worse. How to get those arithmetic operators overloading for class with pointers in it.
View 3 Replies
View Related
Sep 25, 2013
the question am having problems with..
1.Write a class function that defines adding, subtracting, multiplying and dividing fractions by overloading standard operators for the operations.
2. Write a function member for reducing factors and overload I/O operators to input and output fractions. how would i set this up?
View 5 Replies
View Related
Dec 17, 2013
it seems everytime i use statics in a class i come across with a porblem.
this time i wanted to make a class i created static inside another class.
MainVariables.h file
static fge::window mWinMain;
if someone ever wants to reach it
MainVariables.cpp file
fge::window MainVariables::mWinMain;
...
...
fge::window MainVariables::GetWinMain()
{
return mWinMain;
}
but when i created some other MainVariables classes at other places instead of them reaching to the same window two window is being created.
yes i know maybe there are better methods but currently i m working on polymorphism and i need some static members.
View 2 Replies
View Related
Nov 9, 2013
I am trying to access a variable from another class through another class but it is not returning its "instance"?
Example:
Class View
Code:
...
V3D_Viewer viewer;
...
Class MainWindow
Code:
...
viewer* myView;
myView = new viewer();
...
Class Test
Code:
...
MainWindow window;
window.myView->setBackgroundColor(WHITE);
...
I am new to c++ references and pointers,
View 3 Replies
View Related
Sep 13, 2013
I'm implementing a rational number class:
#include <iostream>
#include <stdint.h>
using namespace std;
typedef int64_t RAT_INT;
struct RAT{
RAT_INT Num, Den;
RAT(RAT_INT num = 0, RAT_INT den = 1){
Num = num;
Den = den;
[Code].....
Two questions:
1) In the second line in main, how does C++ know to convert 2 to the appropriate RAT?
2) Is it possible to make the third line in main valid without adding global operators for all the member operators to support plain integers?
View 5 Replies
View Related
Feb 5, 2013
I am making a vector class and am having some problems creating the overloaded arithmetic operators and assignment operators.
Here is an example of my "+=" code as it stands the errors are similar/the same for the other operators except "=" operator which works fine:
Vector3& Vector3::operator+=(const Vector3 &rhs) {
Vector3 tmp = *this;
Set(tmp.getX() + rhs.getX(), tmp.getY() + rhs.getY(), tmp.getZ() + rhs.getZ());
return *this;
}
I have tried a lot of different approaches ad always get the error:
error: passing 'const Vector3' as 'this' argument of 'double Vector3::getX()' discards qualifiers
error: passing 'const Vector3' as 'this' argument of 'double Vector3::getY()' discards qualifiers
error: passing 'const Vector3' as 'this' argument of 'double Vector3::getZ()' discards qualifiers
View 5 Replies
View Related
Apr 10, 2015
This code is meant to open a file and use overloaded operators for a complex number class. I am getting a lot of errors in my class declaration/definition but I am not sure why.
#include <iostream>
#include <cmath>
#include <fstream>
class CN {
public:
double real;
double im;
[Code] ....
View 5 Replies
View Related
May 21, 2014
I have 2 Classes.
-> StateManager
-> Intro
The StateManager creates the Intro. I want that the Intro calls a function of the StateManager if finished. How can I achieve that?
At line 24 at the Intro class you can see what I tried.
StateManager:
#pragma once
#include "State.h"
#include "Intro.h"
class StateManager{
private:
std::vector <State*> States;
[Code] .....
View 5 Replies
View Related
Feb 20, 2015
My thought is that I would need to establish a variable for the class in the header and call the class within the .cpp file
//class A.h
B b;
Then in class A, to create the object and use a method from the object I would -
//class A.cpp
A::A(){
b();
}
int someAmethod(){
b.bmethod();
}
View 6 Replies
View Related
Mar 7, 2014
I have a class MySeqBuildBlockModule that I am inheriting from: public SeqBuildBlock. Other than constructor and destructor, this class MySeqBuildBlockModule has a method: prep.
class MySeqBuildBlockModule: public SeqBuildBlock {
friend class SeqBuildBlockIRns;
public:
MySeqBuildBlockModule (SBBList* pSBBList0, long TI1_In, long TI2_In)// more arguements in this constructor of derived class
: SeqBuildBlock (pSBBList0)
[code]....
I would have like to intiantiate an object "myIRns_3" of a class defined in third party library
SeqBuildBlockIRns myIRns_3(pSBBList2);
and would like to access it from the prep function as:
double dEnergyAllSBBs_DK = myIRns_3.getEnergyPerRequest();
I tried to instantiate following in either private section or in constructor; but w/o any success:
SeqBuildBlockIRns myIRns_3(pSBBList2);
ERRORS encountered:
When I tried to do it inside the constructor, I get the following errors:
MySBBModule.h(113) : error C2065: 'myIRns_3' : undeclared identifier
MySBBModule.h(113) : error C2228: left of '.getEnergyPerRequest' must have class/struct/union type
MySBBModule.h(116) : error C2065: 'pSBBList' : undeclared identifier
MySBBModule.h(116) : error C2227: left of '->prepSBBAll' must point to class/struct/union
When I tried to do it in private section, I get the following errors:
MySBBModule.h(106) : error C2061: syntax error : identifier 'pSBBList2'
MySBBModule.h(113) : error C2228: left of '.getEnergyPerRequest' must have class/struct/union type
MySBBModule.h(116) : error C2065: 'pSBBList' : undeclared identifier
MySBBModule.h(116) : error C2227: left of '->prepSBBAll' must point to class/struct/union
View 5 Replies
View Related
Jun 23, 2013
while writing code i got a question. For example i created a class named as unit.
Think a simple game, and the unit class will belong the units.İf i give the preferences as private one by one, it will be irregular. For a detailed game; height, weight, race, hair preferences, eyes... Strength, dexterity, charisma, intelligence, wisdom, constution... experience, damage, armor...
and should i use struct to group them? And how to can i use struct at the inside of class as private?
View 2 Replies
View Related
Mar 23, 2013
I have a class that has a method name the same as another method separate from the class and I am writing another class method in the class but want to call the outside method instead of the one in the class.
Is there a way I can overload the class method with the outside one?
Here is what the situation looks like :
Code:
class LongInt{
int digits() { /* find total # of digits of this object */
LongInt divide(const LongInt&); // this method is where I want to use the outside digits(int number) method
}
int digits(int number){ /*finds total digits of number */} T
he problem is when I call digits(number) inside the class, I get compiler error saying it doesn't take 1 arguments.
View 3 Replies
View Related
Apr 18, 2013
class Hallway {
private:
//---------------------------------------------------------------
// DO_04: Declare a Light array of size MAX_LIGHTS
// Hint: look through the methods below to find the name to use
// for the array
//---------------------------------------------------------------
int numLights;
int lights[MAX_LIGHTS];
[Code] .....
I keep getting the error " this.lights[i] is not a struct or class and so you cannot use '.' " on line 34.
How am I supposed to define my lights[] array? I can't modify anything except directly after each comment block.
View 6 Replies
View Related
Nov 18, 2013
I have built LOG4CXX lib and DLL and trying to use it in my application
Loh.h
class Log
{
public:
[Code].....
In my main I am initializing Log class object and calling Debug method to log debug message to a file.
Issue I am facing is at if(CLogger::oLogger != NULL) which is always returning oLogger as NULL.
View 1 Replies
View Related
Nov 4, 2014
Im currently working on a class assignment and the pseudo code containing the instructions that I need to complete list:
//--------------------------------------------------------------------------------------------------------------
// CTOR: Point()
//
// DESCRIPTION
// Default constructor. Initializes the point to be at the origin (0, 0) and the color to black = (0, 0, 0).
//
// PSEUDOCODE
// Call Init() and pass 0, 0, 0, 0, and 0 as the parameters.
//--------------------------------------------------------------------------------------------------------------
My code for this is:
Point::Point(){
void Init(0, 0, 0, 0, 0);
}
The code I wrote for the function Init is here:
Point::Init(int mX, int mY, color mColor){
mX = 0;
mY = 0;
mColor = pInitColor;
}
My problem here is that whenever I try calling this function in the point class, I get an error next to void Init saying incomplete type is not allowed. Also visual studio is telling me that it expects a ')' after my first zero in that line.
View 1 Replies
View Related
Jan 1, 2013
i usually use this method for accesing functions in executables, the code is executed from a DLL (always works, except when the function are inside of a class, even tho is public):
.h:
typedef int (*pgObjViewportClose) (OBJECTSTRUCT* gObj);
extern pgObjViewportClose gObjViewportClose;
.cpp
pgObjViewportClose gObjViewportClose = (pgObjViewportClose) 0x04F1940;
That works, but i can't get it to work if the accesing function is inside of a class, i get Unhandled Exception while trying to access a function inside a class, is there a way to do it?.
View 1 Replies
View Related
Jan 10, 2013
Let's say I have the following class:
class MyClass {
private:
int m_myInt;
public:
int myInt() {return this->m_myInt;};
int myFunc();
};
Which of the following is to prefer;
int MyClass::myFunc() {
return 2*this->m_myInt;
}
or
int MyClass::myFunc() {
return 2*this->myInt();
}
The second one seems better? Are both OK? What's the best practice?
View 13 Replies
View Related