• Advertisement

Yanroy

Member
  • Content count

    447
  • Joined

  • Last visited

Community Reputation

122 Neutral

About Yanroy

  • Rank
    Member
  1. Subversion Versus CVS

    Many years ago, I tried to set up a version control system back when I knew next to nothing about programming because I wanted my friends to be able to work on a project with me and not cause conflicts. I failed miserably. I was attempting to get CVS to work. Fast forward many years and I stumble upon SVN right before I start a major project with 3 friends... it was heaven. I got it setup and running in about as much time as it took to download. I use the TortoiseSVN shell tool which makes it painfully easy to use :) I don't know much about how it differs under the hood from CVS, but I have since used CVS on another project and I find SVN to be much faster and feel cleaner when it's being used (as in a much more concise, sane interface).
  2. problem with typeid()

    I have RTTI on. You may have noticed I said I have similar code in my program that works perfectly... There's something deeper going on here.
  3. I'm having a strange problem where typeid() lies to me. It insists that a pointer I'm giving it is a pointer to a base class when it's actually a pointer to a derived class. Yes, I'm dereferencing the pointer. I'm using almost identical code (it has the same form, but it involves different classes) elsewhere in my program and it works fine. Here's the applicable code: a CSharedFileInfo instance is created and passed to a function that takes a CSharedFSObject pointer: CSharedFileInfo* newFile = new CSharedFileInfo(&FileData); AddFSObject(newFile); this is the function with a couple comments to explain the issue: void CSharedFileDir::AddFSObject(CSharedFSObject* FSObj) { // note: inserts at the top of the list, because it's faster Node* NewNode = new Node; NewNode->FSObj = FSObj; // the list is empty, just point the head at the new node if(!Head) { Head = NewNode; } else { // replace and point to the old head Node* NextPtr = Head; Head = NewNode; NewNode->Next = NextPtr; } // !!!!!! - THIS IF STATEMENT FAILS: // if it's a file, not a dir, increment the file counter if(typeid(*FSObj) == typeid(CSharedFileInfo)) NumFiles++; // THIS MESSAGE BOX SAYS "class CSharedFSObject": AfxMessageBox(typeid(*FSObj).name(), MB_OK, NULL); return; } and if you need proof that CSharedFileInfo is a child of CSharedFSObject: class CSharedFileInfo : public CSharedFSObject Any help will be appreciated! This one has been driving me nuts for hours.
  • Advertisement