Sponsored Content
Top Forums Programming Need to understand the overloaded assignment operator behavior Post 302776811 by royalibrahim on Thursday 7th of March 2013 01:35:58 AM
Old 03-07-2013
Need to understand the overloaded assignment operator behavior

Hi,

In the following code,
Code:
class A {
public:
    void operator=(const A& rhs) {
        if (this == &rhs) cout << "self-assigned";
    }
};

class B {
    A a; // should not be a pointer member, (i.e) A* a
};

int main() {
    B b;
    b = b;  // Ans: self-assigned
}

I am really not getting the logic, why the class A's overloaded assignment operator is called when object B is self assigned? Could anyone help me in understanding this behavior?

Last edited by royalibrahim; 03-07-2013 at 02:41 AM..
 

9 More Discussions You Might Find Interesting

1. Programming

what is diff b/w copy constructor and overloaded assignment operator

Helo i m new in c++. i m confuse about what is exact difference b/w copy constructor and overloaded assignment operator. Regards, Amit (3 Replies)
Discussion started by: amitpansuria
3 Replies

2. Shell Programming and Scripting

scalar variable assignment in perl + { operator

When reading over some perl code in a software document, I came across an assignment statement like this $PATH = ${PROJECT}/......./.... In this particular form of scalar variable assignment, what does the curly braces operators do ? Also, what is the benefit in doing scalar assignment this... (3 Replies)
Discussion started by: JamesGoh
3 Replies

3. HP-UX

ERROR: more than one instance of overloaded function "vprintf" has "C" linkage

Hi people! I've got this own library: -------------------------------------------- Personal.h -------------------------------------------- #ifdef __cplusplus extern "C" { #endif #include <stdio.h> #include <stdarg.h> #include <string.h> ... (0 Replies)
Discussion started by: donatoll
0 Replies

4. Programming

c++ assignment operator overloading

Hello everyone! Suppose that I have something like this A a; a.mem=new int; A b = a; where class A { public: int * mem; A() : mem(NULL) { } ~A() { if (mem!=NULL) delete mem; (1 Reply)
Discussion started by: bashuser2
1 Replies

5. Homework & Coursework Questions

Assignment Help

1. List commands to create the directory hierarchy $HOME/a/b/c in vi to replace all occurences of TMP with tmp in lines 1 through 10 in vi to replace first occurence of CPU_file with DISK_file at line 15 2. Explain with a very simple example, usage of "ls -a" 3. What do the... (2 Replies)
Discussion started by: jessesaini
2 Replies

6. Solaris

Looking to understand what this command $$ does in variable assignment?

Hi Folks, I'm looking to figure something out in an existing script I'm trying to understand. the command in question(on a Solaris Box using KSH) is: WORKDIR=/tmp/namereplaced.exec.$$.$RANDOM Now, I know it's setting the $workdir environmental variable... And I understand most of... (2 Replies)
Discussion started by: Marc G
2 Replies

7. UNIX for Dummies Questions & Answers

Need a little help with assignment

Hello all im currently working on this assignment and a little stump on how to check for an argument heres the instructions: Step 4: Modify your script so that if there is an argument called TestError you display the following error message with your usage statement. TestError found Example:... (1 Reply)
Discussion started by: bsn3971
1 Replies

8. Shell Programming and Scripting

Assignment operator without operand

Does anyone know how this line in bash works? local gotbase= force= nicelevel corelimit local pid base= user= nice= bg= pid_file= local cgroup= These lines are part of the daemon function inside the "functions" file at /etc/init.d in RH. (3 Replies)
Discussion started by: Rameshck
3 Replies

9. Shell Programming and Scripting

Bash variable assignment failure/unary operator expected

I have a little code block (executing on AIX 7.1) that I cannot understand why the NOTFREE=0 does not appear to be assigned even though it goes through that block. This causes a unary operator issue. #!/bin/bash PLATFORM="AIX" NEEDSPC=3000 set -x if ; then lsvg | grep -v rootvg | while... (6 Replies)
Discussion started by: port43
6 Replies
std::valarray< _Tp >(3cxx)												std::valarray< _Tp >(3cxx)

NAME
std::valarray< _Tp > - SYNOPSIS
Public Types typedef _Tp value_type Public Member Functions valarray () valarray (size_t) valarray (const _Tp &, size_t) valarray (const _Tp *__restrict__, size_t) valarray (const valarray &) valarray (const slice_array< _Tp > &) valarray (const gslice_array< _Tp > &) valarray (const mask_array< _Tp > &) valarray (const indirect_array< _Tp > &) valarray (initializer_list< _Tp >) template<class _Dom > valarray (const _Expr< _Dom, _Tp > &__e) template<typename _Tp> valarray (const _Tp *__restrict__ __p, size_t __n) _Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply (_Tp func(_Tp)) const " _Expr< _RefFunClos< _ValArray, _Tp >, _Tp > apply (_Tp func(const _Tp &)) const " valarray< _Tp > cshift (int) const _Tp max () const _Tp min () const _UnaryOp< __logical_not >::_Rt operator! () const valarray< _Tp > & operator%= (const _Tp &) valarray< _Tp > & operator%= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator%= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator&= (const _Tp &) valarray< _Tp > & operator&= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator&= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator*= (const _Tp &) valarray< _Tp > & operator*= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator*= (const _Expr< _Dom, _Tp > &) _UnaryOp< __unary_plus >::_Rt operator+ () const valarray< _Tp > & operator+= (const _Tp &) valarray< _Tp > & operator+= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator+= (const _Expr< _Dom, _Tp > &) _UnaryOp< __negate >::_Rt operator- () const valarray< _Tp > & operator-= (const _Tp &) valarray< _Tp > & operator-= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator-= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator/= (const _Tp &) valarray< _Tp > & operator/= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator/= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator<<= (const _Tp &) valarray< _Tp > & operator<<= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator<<= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator= (const valarray< _Tp > &) valarray< _Tp > & operator= (const _Tp &) valarray< _Tp > & operator= (const slice_array< _Tp > &) valarray< _Tp > & operator= (const gslice_array< _Tp > &) valarray< _Tp > & operator= (const mask_array< _Tp > &) valarray< _Tp > & operator= (const indirect_array< _Tp > &) valarray & operator= (initializer_list< _Tp >) template<class _Dom > valarray< _Tp > & operator= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator>>= (const _Tp &) valarray< _Tp > & operator>>= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator>>= (const _Expr< _Dom, _Tp > &) _Tp & operator[] (size_t) const _Tp & operator[] (size_t) const _Expr< _SClos< _ValArray, _Tp > , _Tp > operator[] (slice) const " slice_array< _Tp > operator[] (slice) _Expr< _GClos< _ValArray, _Tp > , _Tp > operator[] (const gslice &) const " gslice_array< _Tp > operator[] (const gslice &) valarray< _Tp > operator[] (const valarray< bool > &) const mask_array< _Tp > operator[] (const valarray< bool > &) _Expr< _IClos< _ValArray, _Tp > , _Tp > operator[] (const valarray< size_t > &) const " indirect_array< _Tp > operator[] (const valarray< size_t > &) valarray< _Tp > & operator^= (const _Tp &) valarray< _Tp > & operator^= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator^= (const _Expr< _Dom, _Tp > &) valarray< _Tp > & operator|= (const _Tp &) valarray< _Tp > & operator|= (const valarray< _Tp > &) template<class _Dom > valarray< _Tp > & operator|= (const _Expr< _Dom, _Tp > &) _UnaryOp< __bitwise_not >::_Rt operator~ () const void resize (size_t __size, _Tp __c=_Tp()) valarray< _Tp > shift (int) const size_t size () const _Tp sum () const Friends class _Array< _Tp > Detailed Description template<class _Tp>class std::valarray< _Tp > Smart array designed to support numeric processing. A valarray is an array that provides constraints intended to allow for effective optimization of numeric array processing by reducing the aliasing that can result from pointer representations. It represents a one-dimensional array from which different multidimensional subsets can be accessed and modified. Parameters: Tp Type of object in the array. Definition at line 116 of file valarray. Constructor &; Destructor Documentation template<class _Tp> std::valarray< _Tp >::valarray (const _Tp *__restrict__, size_t) Construct an array initialized to the first n elements of t. Author Generated automatically by Doxygen for libstdc++ from the source code. libstdc++ Tue Nov 27 2012 std::valarray< _Tp >(3cxx)
All times are GMT -4. The time now is 04:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy