|
|
well, Vunic, If you don't worry about self assignment, you'll expose yourself to some very subtle bugs that have very subtle and often disastrous symptoms.
|
|
|
|
|
dubeypankaj wrote: you'll expose yourself to some very subtle bugs that have very subtle and often disastrous symptoms
For example..
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
VuNic wrote: For example..
If you do weird things in the = operator (re-)definition, for instance, i.e. if you write it (implicitely) assuming it will be never used to do self-assignment. Have a look at the following code
(please note, it is silly, written just to spot the point; moreover no check is done on memory allocation, for brevity)
class Foo
{
static const int N = 10;
char * _buf;
public:
Foo(char c){_buf = new char [N]; memset(_buf, c, N);}
Foo & operator=(const Foo & foo)
{
if ( _buf )
{
delete _buf;
_buf = new char[N];
}
memcpy(_buf, foo._buf, N);
return *this;
}
Foo(const Foo & foo){...}
};
void main()
{
Foo f('A');
f = f;
}
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: i.e. if you write it (implicitely) assuming it will be never used to do self-assignment.
And why would someone do that? Isn't that considered Best Practice? Or is this question about something entirely different than what I have been able to interpret?
It seems to me that it is about this subject[^]
|
|
|
|
|
led mike wrote: And why would someone do that?
Exactly that? Just CPallini...
led mike wrote: Isn't that considered Best Practice?
Nope, anyway it's a good candidate to be inserted into the WPF (Worst Practice Foundation).
led mike wrote: Or is this question about something entirely different than what I have been able to interpret?
led mike wrote: And why would someone do that? Isn't that considered Best Practice? Or is this question about something entirely different than what I have been able to interpret?
It seems to me that it is about this subject[^]
Nope, you understand it correctly and, damn... If you recalled that page before my post I hadn't to put the weird code therein.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Nope, anyway it's a good candidate to be inserted into the WPF (Worst Practice Foundation).
It's not considered best practice to implement an assignment operator the way it is shown in the parashift FAQ Lite to exclude self assignment?
|
|
|
|
|
Nope. I was talking about my code sample (supposing your sentence ironical). Sorry for the misunderstanding.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Sorry for the misunderstanding.
LMAO Some times texting is a a BEE-ATCH!
Using the IPhone would have solved all this
|
|
|
|
|
Thanx for the adjective used for me(Worst Practice Foundation user).
Any way, my question was what are the problems associated with self assignment of an object to itself?
Ppl gave me all the comments and on my programming as well rather to answer my question, but yes, i got the answer, please refer the following link:
http://faqs.cs.uu.nl/na-dir/C++-faq/part06.html
Refer: SECTION [12]: Assignment operators(in the link above)
Thanx & Regards
|
|
|
|
|
dubeypankaj wrote: Thanx for the adjective used for me(Worst Practice Foundation user).
It wasn't used for you, it was for my sample code (see [^])... In a bad mood today?
I just wanted to make Vunic aware that, yes, there might be problems with self-assignment. Of course the link provided by led mike spots the point far better than I did.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
dubeypankaj wrote: What are the problems associated with self assignment
The answer is, whatever problems were introduced in the class being used in the self assignment.
Keep studying.
|
|
|
|
|
If local-time and time-zone are correctly set,
does the function ::GetSystemTime(...) (UTC) return same time value in its parameter in all (different) time-zones?
|
|
|
|
|
includeh10 wrote: does the function ::GetSystemTime(...) (UTC) return same time value in its parameter in all (different) time-zones?
I suppose it depends on when the function is called...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
hallo,
in the file: mainfrm.cpp i need to access the function CEditView::OnFilePrint ()
but i got error C2248 'member' : cannot access 'access' member declared in class 'class',
how can i solve this problem, thanks.
|
|
|
|
|
Did you try GetActiveView()?
|
|
|
|
|
what about GetActiveView()? i did not find it.
|
|
|
|
|
What are you trying to do ?
You cannot access a function from a class without having an instance of this class unless this is a static method. I think you'll need some deeper knowledge of the way to work with classes in C++. Remember that the MFC generated classes (the view, the main frame, the document, ...) are still classes.
|
|
|
|
|
i have SDI application that divided to two windows with an instance of CSplitterWnd, so the upper and the lower window thier content need to be printed separately from each other, i put a function in the mainfrm.cpp that calls OnFilePrint (), but OnFilePrint () is a protected function of CView, i tried to make mainfrm class a friend of CEditView but it did not work.
|
|
|
|
|
You could simply add a public member function in your CView-derived class which simply calls OnFilePrint.
I don't know if you are allowed to call OnFilePrint (I don't have a lot of experience with printing), but if you can then that's probably the easiest.
|
|
|
|
|
i derived a class from CView and declared a publich function in it in this function i called OnFilePrint() by an CEdit Object, but i got the same error C2248.
|
|
|
|
|
susanne1 wrote: in this function i called OnFilePrint() by an CEdit Object
I don't understand what you mean... What is this CEdit object doing here ? Please, be specific in your reply, and maybe post some useful code so that we can see what you are doing exactly.
|
|
|
|
|
how to make application for windows mobile. I need all details to build application for windows mobile
Trioum
|
|
|
|
|
For instance, choosing the right forum to post to [^] would be a nice start.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
In addition to our pal-lini's link, here's a link to the other world[^]
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|