I really hope Microsoft can enforce this patent, and keep C++ all to itself! c(-;
To: email@example.com Subject: Microsoft patent on Virtual function & virtual base class implementations Date: Sat, 26 Mar 1994 01:04:07 -0800 From: John Gilmore firstname.lastname@example.org Status: O
From: email@example.com (Arindam Banerji) Newsgroups: comp.lang.c++ Subject: Virtual function & virtual base class implementations PATENTED ? Date: 23 Mar 1994 15:22:12 GMT Organization: University of Notre Dame Message-ID: firstname.lastname@example.org
The following patent was issued to Microsoft yesterday. Does anybody have more complete information on the contents and details of this patent ?
PATENT NUMBER = 5297284 TITLE = Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language ISSUE DATE = 03-22-94 INVENTOR = Jones; David T. INVENTOR = O'Riordan; Martin J. INVENTOR = Zbikowski; Mark J. ASSIGNEE = Microsoft Corporation CLASS=395/700 TYPE= 395 CROSS REFERENCE CLASS=364/DIG.1 364/255.1 364/255.8 364/261.4 364/DIG.2 364/938.3 364/955 364/955.6 ABSTRACT : A method for a computer compiler for an object-oriented programming language for implementing virtual functions and virtual base classes is provided. In preferred embodiments of the present invention, the data structure layout of an object includes a virtual function table pointer, a virtual base table pointer, occurrences of each non-virtual base class, the data members of the class, and occurrences of each virtual base class. If a class introduces a virtual function member and the class has a non-virtual base class with a virtual function table pointer, then the class shares the virtual function table pointer of the non-virtual base class that is first visited in a depth-first, left-to-right traversal of the inheritance tree. In preferred embodiments of the present invention, each instance of a given class shares a set of virtual function tables and virtual base tables for that class. In preferred embodiments, adjusters are used when a function member in a derived class overrides a function member that is defined in more than one base class, and when a derived class has a base class that overrides a function member in a virtual base class of that class and the derived class itself does not override the function member.
Arindam Banerji (219)-631-5273 (Voice) 384 FitzPatrick Hall (219)-631-5772 (Voice) Dept. of Computer Science and Engineering (219)-273-0862 (Voice) University of Notre Dame (219)-631-9260 (FAX) Notre Dame, IN 46556 email@example.com (E-mail)