If the B class was descended from the A class, that would be overloading, if you overloaded its copy constructor.
@Corona688, thank you for the reply. But even in the case when class B is not derived/inherited from A, and having the custom assignment operator implemented (like in the below code), then the B's overloaded assignment (only) is called.
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
public:
void operator=(const B& rhs) {
cout << "B's" << endl;
}
};
int main() {
B b;
b = b; // Ans: B's
}
my understanding was the user implemented overloaded assignment operator function will be invoked at the time when that class's object is assigned. If there is no such implementation in that class then the compiler provided default assignment operator will be called, theoretically. Also, in class B there is just a containment member object and my doubt is why the class A's assignment operator is invoked when instance of B is assigned? Is this a compiler's optimization technique?
Last edited by royalibrahim; 03-08-2013 at 06:49 AM..
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT DEBIAN
std::slice_array
std::slice_array< _Tp >(3cxx) std::slice_array< _Tp >(3cxx)
NAME
std::slice_array< _Tp > -
SYNOPSIS
Public Types
typedef _Tp value_type
Public Member Functions
slice_array (const slice_array &)
void operator%= (const valarray< _Tp > &) const
template<class _Dom > void operator%= (const _Expr< _Dom, _Tp > &) const
void operator&= (const valarray< _Tp > &) const
template<class _Dom > void operator&= (const _Expr< _Dom, _Tp > &) const
void operator*= (const valarray< _Tp > &) const
template<class _Dom > void operator*= (const _Expr< _Dom, _Tp > &) const
void operator+= (const valarray< _Tp > &) const
template<class _Dom > void operator+= (const _Expr< _Dom, _Tp > &) const
void operator-= (const valarray< _Tp > &) const
template<class _Dom > void operator-= (const _Expr< _Dom, _Tp > &) const
void operator/= (const valarray< _Tp > &) const
template<class _Dom > void operator/= (const _Expr< _Dom, _Tp > &) const
void operator<<= (const valarray< _Tp > &) const
template<class _Dom > void operator<<= (const _Expr< _Dom, _Tp > &) const
slice_array & operator= (const slice_array &)
void operator= (const valarray< _Tp > &) const
void operator= (const _Tp &) const
template<class _Dom > void operator= (const _Expr< _Dom, _Tp > &) const
void operator>>= (const valarray< _Tp > &) const
template<class _Dom > void operator>>= (const _Expr< _Dom, _Tp > &) const
void operator^= (const valarray< _Tp > &) const
template<class _Dom > void operator^= (const _Expr< _Dom, _Tp > &) const
void operator|= (const valarray< _Tp > &) const
template<class _Dom > void operator|= (const _Expr< _Dom, _Tp > &) const
Friends
class valarray< _Tp >
Detailed Description
template<typename _Tp>class std::slice_array< _Tp >
Reference to one-dimensional subset of an array.
A slice_array is a reference to the actual elements of an array specified by a slice. The way to get a slice_array is to call
operator[](slice) on a valarray. The returned slice_array then permits carrying operations out on the referenced subset of elements in the
original valarray. For example, operator+=(valarray) will add values to the subset of elements in the underlying valarray this slice_array
refers to.
Parameters:
Tp Element type.
Definition at line 124 of file slice_array.h.
Author
Generated automatically by Doxygen for libstdc++ from the source code.
libstdc++ Tue Nov 27 2012 std::slice_array< _Tp >(3cxx)