Sunday, 18 January 2015

Friday, 16 January 2015

Top 25 Ad Sense Alternatives for 2015

Having trouble with getting approved for Google AdSense, or not making the revenue you were expecting? Then you will need alternative avenues of revenue to either supplement your AdSense earnings or replace them altogether. In this article, we’re going to look at the top 25 Google AdSense alternatives for 2014. They consist of great display advertising, affiliate marketing, and content monetization networks that will help you earn more revenue.

Just starting out, or have a medium-sized audience? These display networks beyond AdSense can help you monetize.

Advertising.com — Advertising.com combines the industry’s most advanced technology, precise targeting and a quality network to deliver results for advertisers & publishers. Publishers using this network include Boston.com, Laptopmag.com, and DIYnetwork.com.

BuySellAds — BuySellAds allows publishers to list their ad inventory on their network to be discovered by advertiser in their niche. Publishers using this network include 9to5google.com, RunBlogger.com, and 1keydata.com.

Chitika — Chitika sets itself apart with their pledge to only show ads to users when and where they want to see them. Publishers using this network include Used-Cars.info, Freebies4mom.com, and Binatani.com. Click here to read MonetizePros’ in-depth review of Chitika.

IndustryBrains — IndustryBrains allows publishers to leverage their premium online content to generate additional revenue from contextually targeted ads that are consistent with your brand. Publishers using this network include Telecomsemea.net.

Kontera — Kontera provides publishers with incremental advertising revenues and premium content syndication for their mobile or PC web pages. Publishers using this network include MajorGeeks.com, PracticalMachinist.com, and EventGuide.com.

Media.net — Media.net brings contextual ads program from Yahoo! and Bing to publishers so they can create and customize ad units that display relevant text ads consisting of sponsored links and ad topics. This network is currently invite only.

PulsePoint — PulsePoint owns one of the largest independent and fully transparent ad exchanges in the industry, allowing quality publishers to reveal and monetize the true value of their inventory. Publishers using this network include Gameshok.com, Salary.com, and FlashDriven.com.

Adblade — Adblade’s full suite of monetization solutions will help you grow revenue by attracting top advertisers, as well as help monetize inventory that’s not currently generating revenue. Publishers using this network include LAtimes.com, Audible.com, and AutoAnything.com.

Tribal Fusion — Publishers who meet Tribal Fusion’s rigorous standards can expect to discover the benefits of partnering with them and maximize the value of their highly targeted content. Publishers using their network include Ranker.com, Cheapoair.com, and CDW.com.

Disqus — Disqus, the popular commenting platform, is working on Promoted Discovery, which will allow publishers using their comment platform to monetize their content as well.

Outbrain — For publishers with high amounts of traffic, Outbrain allows you to generate revenue with links to high quality third-party content below the fold. Publishers using this network include CNN.com, DailyCurrant.com, and LAweekly.com.

Tabooola — Similar to Outbrain, Taboola targets publishers with high traffic to monetize with third-party links to high-quality content. Publishers using this network include Dumpaday.com, WickedLocal.com, and HeraldNews.com.

VigLink — VigLink automatically pays you when people buy the brands and products you write about by automatically converting regular links into paid ones. Publishers using this network include Makeuseof.com, Rumorfix.com, and HypeLifeMagazine.com.

LiveIntent — LiveIntent allows you to monetize your valuable newsletter inventory with offers and content in real-time. Publishers using this network include The Weather Channel, AOL, and The Wall Street Journal.

NewsletterDirectory.co — Membership in NewsletterDirectory.co can help you monetize your email list by finding the right sponsors.

Adap.TV — Adap.tv allows you to open your inventory up to new sources of revenue by ensuring the highest possible CPMs for every impression.

YouTube Partner Program — YouTube video creators can monetize their videos by joining the YouTube Partner Program, which offers CPC and CPM monetization with pre-roll video ads as well as in-video overlays.

Videology — The Videology Addressable Media Platform enhances the yield on a publisher’s ad inventory by connecting the world’s leading marketers with your audience. Publishers using this network include Fool.com, Activebeat.co, and Gamewise.co.

Amazon Associates — Amazon Associates allows you to earn up to 10% commission by simply referring people to products you recommend on Amazon.

ClickBank — As an affiliate on Clickbank, you will be able to promote downloadable products you’ve picked out from their extensive marketplace for your audience based on their interests.

Rakuten LinkShare — Regardless of what type of site you have in mind (or already have in place!) as you build a loyal following you have an opportunity to monetize your website and start earning commissions.

You want to get Google adsense approval within 3 days? No problem, it’s 100% possible to get approval within 3 days. You might be wondering, why does Google Adsense disapprove my request? You might have tried many times to apply again, to no avail. There are many reasons for Google Adsense to disapprove your request. You should know the basic requirements before for applying to Google AdSense. Even if you have a good blog, traffic, rank, it’s not must your account should be approved. Find out what makes your site to stand out an get an AdSense approval soon. Below are few important points you need to keep in mind before applying Google Adsense.

Get Google Adsense approval within 3 days:

Before applying for Google Adsense, make sure to follow these points. Everything counts, including your blog/site layout, content, number of posts, SEO metrics, back-links, other required metrics and etc. Every single one of them will play a important role in getting Adsense approved. Check out the most important requirements one should follow before applying for Adsense.

Minimum Posts/Articles/Pages:

If you are applying for Adsense for a WordPress blog, you should maintain a minimum of 40 quality posts/articles. And if it’s any other website (html, Joomla), try to maintain a minimum of 30 pages. Every article is considered to be a page in your site. So consider this as your major requirement and proceed implementing further requirements.

Google Analytics Code:

You need to install a Google Analytics code on your website. To do this, just login to Google Analytics and click on Admin where you can see “+ New Account” under Accounts tab. Click on New Account and enter your website name, url and other details. Click on Get Tracking ID and paste it in your site.

Google Webmasters Verification Page:

Next you need to apply for a Google Verification Page. To do this, login to Google Webmaster Tools and click on “Add a Site” and Enter your site URL. Verify your ownership by any one of the following methods and get a conformation.

Bing Webmaster Verification Page:

Bing Webmaster Tools is very similar to Google Webmaster Tools. You can follow the same procedure here and verify your ownership. In Bing webmaster tools, you need to apply even your website sitemap page. I will tell you how to add that below.

Sitemap.xml Page:

Your site should have a Sitemap.xml page, so that search engines can index your site links and pages quickly. To create a sitemap, just install the Google XML Sitemaps (WordPress) and create a sitemap.

Robots.txt

You need to create a robots.txt file in your site. No matter if it’s a WordPress site or any other CMS based, you need to have a robots.txt file. This file will tell the search engines, what to index and what not to. You can check SEOSiren robots.txt file for clear idea. To create a sitemap, just open your hosting cpanel, click on File Manager, and select your site folder to open it. Once opened, you can create a file and name it as robots.txt. You can enter the basic commands to restrict search engines to over crawl you site.

Alexa Rank:

A lot of people disagree with this statement. But still your site should have a decent Alexa ranking to get adsense approved. Even if your site doesn’t have a decent Alexa rank, you can still apply. But make sure your site rankings are atleast under 400k. Else the chances are quite less to be taken into consideration.

Additional Pages:

Your site should have a Privacy Policy page, Disclaimer page, and Terms of use page. You need to clearly mention what is your site about, and how it is useful for people.

Own Email ID:

If you have your own domain and hosting, its better to apply Adsense via domain email ID. Which means, instead of example@gmail.com, you can apply with example@domain.com. Just like satish@seosiren.com or admin@seosiren.com.

Decent Traffic:

Your site should have a minimum of 50+ visitors per day. Please don’t be in a hurry to apply adsense without having consistent traffic. And even if you follow all the above mentioned requirements without consistent traffic, your account will not be approved.

These are the most effective ways to get Google Adsense approval within 3 days. I hope your Adsense account will be approved. Drop us a line if you have any queries related to Adsense approval. Stay tuned to SEOSiren for more!

Wednesday, 14 January 2015

Visvesvaraya Tecnological University (VTU) , Belgaum has invited applications for the recruitmentof a total of 73 Professors, Associate Professors and Assistant Professors for various fields of Master of Technology (M Tech), Master of Computer Application (MCA) and Master of Business Administration (MBA). Candidates are required for the posts in VTU's Constituent College, UBDTCE, Davanagere. Selected candidates will be on an initial probation period of two years. Last date for application is April 5, 2014.

Eligibility: Age of the candidate should be above 18 years and below 35 years, candidate should also have completed B.E.,/B.Tech., and M.E., / M.Tech., in relevant subject with First Class or equivalent either in B.E.,/B.Tech., or M.E., / M.Tech and PhD.

Experience: Minimum of 10 years teaching and / or research and / or industrial experience of which at least 5 years should be at the level of Associate Professor.

Salary: Rs 37,400 - 67,000 + AGP of Rs 9,000Eligibility: Age of the candidate should be above 18 years and below 35 years, candidate should also have completed B.E.,/B.Tech., and M.E., / M.Tech., in relevant subject with First Class or equivalent either in B.E.,/B.Tech., or M.E., / M.Tech and PhD.Experience: Minimum of 5 years teaching and / or research and / or industrial experience

Salary: Rs 15,600 - 39,100 + AGP of Rs 6,000 Eligibility: Age of the candidate should be above 18 years and below 35 years, candidate should also have completed B.E.,/B.Tech., and M.E., / M.Tech., in relevant subject with First Class or equivalent either in B.E.,/B.Tech., or M.E., / M.Tech

SelectionEligible candidates will be selected on the basis of an interview.

How to applyApplication form is to be filled online and a print out copy is to be sent to the given address with required documents to complete the application.

Application feesGeneral: Rs 1, 000SC/ST: Rs 500

The Visvesvaraya
Technological University (VTU), Belgaum has revised the scheme and syllabus of
Postgraduate Master of Computer Application (MCA) course from the year 2013-14.
As per the University policy, the revision of scheme and syllabus of the MCA
course has to be taken up for every three years. Accordingly the revision of
scheme & syllabus of MCA course falls due from 2013-14. In the last
academic year 2010-11 VTU has revised the MCA course scheme and syllabus. On
this regard, the chairman of Board of Syllabus in MCA has prepared the 'Draft
Scheme and syllabus of the MCA' course to be revised with respect to the
2013-14 and submitted to the university. The new scheme and syllabus details
has been uploaded in the official website of VTU. The notice has been sent to
all Engineering colleges affiliated to the University. Click here to the
changed MCA course scheme and syllabus. It has been bring to notice that, If
any suggestions and comments needed for changed scheme and syllabus. The
students and concerned teaching faculty may sent same to the Chairman,

BOS in MCA
either in soft/ hard copy to the below address not later than March 30, 2013.

Dr. C.V.
Srikrishna Chairman,

BOS in MCA of VTU,

Belgaum &
Professor,

P.E.S Institute of technology,

100fe ring Road,
2nd Main,

Banashankri,
Hosakerahalli, Bangalore - 560085.

Tel: 080 - 26721983 E-Mail:
cvsrikrishna@yahoo.co.in .

VTU released MCA 2nd, 3rd, 4th and 5th Semester Results released for all the Regions of Examination December 2014/ January 2015 at www.results.vtu.ac.in : Apply for Revaluation

Belgaum: University had conducted MCA 2nd, 3rd, 4th and 5th Semester Exam for all the Regions during December 2014/ January 2015. Several candidates are waiting for the results. As all the candidates are in rush to check the results server may be slow but keep patience to open the home page of VTU university website and check the results. All the best for the candidates who had written the examinations.

Click here to check the results

Procedure to check the results by Web:

Log on to vtu.ac.in
After appearing the home page candidates can see the option Results by Web under Examinations Click on that option
After appearing the results option Candidates can see the option MCA 2nd, 3rd, 4th and 5th Semester Results released for all the Regions of Examination December 2014/ January 2015. Under in the appropriate column Enter the University seat number
Click on the submit button to get the result
After appearing the result at the screen take the print out of the same
Procedure to check the results by SMS:

Log on to vtu.ac.in
After appearing the home page candidates can see the option Results by SMS under Examinations Click on that option
To get the results in the form of SMS candidates need to type the message as RESULT<space>USN<space>yourEmailID and send the message to 5424204
After checking the results Candidates apply for the revaluation. For more details candidates need to check at the official website of VTU. Visvesvaraya Technological University is a public state University in Karnataka. With the intention to improve the quality of technical education in the state this university was established. In India, it is one of the largest universities. Now it is the time to check the results of MCA examinations.

C++ Interview Questions

for the Data Structures in C++
course

Q: Is it possible
to have Virtual Constructor? If yes, how? If not, Why not possible?

A: There is nothing
like Virtual Constructor. The Constructor can’t be virtual as the constructor

is a code which is responsible
for creating an instance of a class and it can’t be delegated to

any other object by virtual
keyword means.

Q: What is
constructor or ctor?

A: Constructor
creates an object and initializes it. It also creates vtable for virtual
functions. It is

different from other methods in a
class.

Q: What about
Virtual Destructor?

A: Yes there is a
Virtual Destructor. A destructor can be virtual as it is possible as at runtime

depending on the type of object
caller is calling to, proper destructor will be called.

Q: What is the
difference between a copy constructor and an overloaded assignment operator?

A: A copy
constructor constructs a new object by using the content of the argument
object. An

overloaded assignment operator
assigns the contents of an existing object to another existing

object of the same class.

Q: Can a
constructor throws an exception? How to handle the error when the constructor
fails?

A:The constructor
never throws an error.

Q: What is default
constructor?

A: Constructor with
no arguments or all the arguments has default values.

Q: What is copy
constructor?

A: Constructor
which initializes the it's object member variables ( by

shallow copying) with another
object of the same class. If you don't implement one in your class

then compiler implements one for
you. for example:

(a) Boo Obj1(10); // calling Boo
constructor

(b) Boo Obj2(Obj1); // calling
boo copy constructor

(c) Boo Obj2 = Obj1;// calling
boo copy constructor

Q: When are copy
constructors called?

A: Copy
constructors are called in following cases:

(a) when a function returns an
object of that

class by value

(b) when the object of that class
is passed by

value as an argument to a
function

(c) when you construct an object
based on another

object of the same class

(d) When compiler generates a
temporary object

Q: Can a copy
constructor accept an object of the same class as parameter, instead of
reference

of the object?

A: No. It is
specified in the definition of the copy constructor itself. It should generate
an error if

a programmer specifies a copy
constructor with a first argument that is an object and not a

reference.

Q: What is
conversion constructor?

A: constructor with
a single argument makes that constructor as conversion ctor and it can be

used for type conversion.

for example:

class Boo

{

public:

Boo( int i );

};

Boo BooObject = 10 ; // assigning
int 10 Boo object

Q:What is
conversion operator??

A:class can have a
public method for specific data type conversions.

for example:

class Boo

{

double value;

public:

Boo(int i )

operator double()

{

return value;

}

};

Boo BooObject;

double i = BooObject; //
assigning object to variable i of type double.

now conversion operator gets
called to assign the value.

Q: How can I handle
a constructor that fails?

A: throw an
exception. Constructors don't have a return type, so it's not possible to use
return

codes. The best way to signal
constructor failure is therefore to throw an exception.

Q: How can I handle
a destructor that fails?

A: Write a message
to a log-_le. But do not throw an exception. The C++ rule is that you must

never throw an exception from a
destructor that is being called during the "stack unwinding"

process of another exception. For
example, if someone says throw Foo(), the stack will be

unwound so all the stack frames
between the throw Foo() and the } catch (Foo e) { will get

popped. This is called stack
unwinding. During stack unwinding, all the local objects in all

those stack frames are
destructed. If one of those destructors throws an exception (say it throws a

Bar object), the C++ runtime
system is in a no-win situation: should it ignore the Bar and end up

in the } catch (Foo e) { where it
was originally headed? Should it ignore the Foo and look for a }

catch (Bare) { handler? There is
no good answer:either choice

loses information. So the C++
language guarantees that it will call terminate() at this point, and

terminate() kills the process.
Bang you're dead.

Q: What is Virtual
Destructor?

A: Using virtual
destructors, you can destroy objects without knowing their type - the correct

destructor for the object is
invoked using the virtual function mechanism. Note that destructors

can also be declared as pure
virtual functions for abstract classes. if someone will derive from

your class, and if someone will
say "new Derived", where "Derived" is derived from your
class,

and if someone will say delete p,
where the actual object's type is "Derived" but the pointer p's

type is your class.

Q: Can a copy
constructor accept an object of the same class as parameter, instead of
reference

of the object?

A: No. It is specified
in the definition of the copy constructor itself. It should generate an error
if

a programmer specifies a copy
constructor with a first argument that is an object and not a

reference.

Q: What's the order
that local objects are destructed?

A: In reverse order
of construction: First constructed, last destructed.

In the following example, b's
destructor will be executed first, then a's destructor:

void userCode()

{

Fred a;

Fred b;

...

}

Q: What's the order
that objects in an array are destructed?

A: In reverse order
of construction: First constructed, last destructed.

In the following example, the
order for destructors will be a[9], a[8], ..., a[1], a[0]:

void userCode()

{

Fred a[10];

...

}

Q: Can I overload
the destructor for my class?

A: No.

You can have only one destructor
for a class Fred. It's always called Fred::~Fred(). It never takes

any parameters, and it never
returns anything.

You can't pass parameters to the
destructor anyway, since you never explicitly call a destructor

(well, almost never).

Q: Should I
explicitly call a destructor on a local variable?

A: No!

The destructor will get called
again at the close } of the block in which the local was created.

This is a guarantee of the
language; it happens automagically; there's no way to stop it from

happening. But you can get really
bad results from calling a destructor on the same object a

second time! Bang! You're dead!

Q: What if I want a
local to "die" before the close } of the scope in which it was
created? Can I

call a destructor on a local if I
really want to?

A: No! [For
context, please read the previous FAQ].

Suppose the (desirable) side
effect of destructing a local File object is to close the File. Now

suppose you have an object f of a
class File and you want File f to be closed before the end of the

scope (i.e., the }) of the scope
of object f:

void someCode()

{

File f;

...insert code that should
execute when f is still open...

We want the side-effect of f's
destructor here!

...insert code that should
execute after f is closed...

}

There is a simple solution to
this problem. But in the mean time, remember: Do not explicitly

call the destructor!

Q: OK, OK already;
I won't explicitly call the destructor of a local; but how do I handle the

above situation?

A: Simply wrap the
extent of the lifetime of the local in an artificial block {...}:

void someCode()

{

{

File f;

...insert code that should
execute when f is still open...

} f's destructor will
automagically be called here!

...insert code here that should
execute after f is closed...}

Q: What if I can't
wrap the local in an artificial block?

A: Most of the
time, you can limit the lifetime of a local by wrapping the local in an
artificial

block ({...}). But if for some
reason you can't do that, add a member function that has a similar

effect as the destructor. But do
not call the destructor itself!

For example, in the case of class
File, you might add a close() method. Typically the destructor

will simply call this close()
method. Note that the close() method will need to mark the File

object so a subsequent call won't
re-close an already-closed File. E.g., it might set the

fileHandle_ data member to some
nonsensical value such as -1, and it might check at the

beginning to see if the
fileHandle_ is already equal to -1:

class File {

public:

void close();

~File();

...

private:

int fileHandle_; // fileHandle_
>= 0 if/only-if it's open

};

File::~File()

{

close();

}

void File::close()

{

if (fileHandle_ >= 0) {

...insert code to call the OS to
close the file...

fileHandle_ = -1;

}

}

Note that the other File methods
may also need to check if the fileHandle_ is -1 (i.e., check if the

File is closed).

Note also that any constructors
that don't actually open a file should set fileHandle_ to -1.

Q: But can I
explicitly call a destructor if I've allocated my object with new?

A: Probably not.

Unless you used placement new,
you should simply delete the object rather than explicitly

calling the destructor. For
example, suppose you allocated the object via a typical new

expression:

Fred* p = new Fred();

Then the destructor Fred::~Fred()
will automagically get called when you delete it via:

delete p; // Automagically calls
p->~Fred()

You should not explicitly call
the destructor, since doing so won't release the memory that was

allocated for the Fred object
itself. Remember: delete p does two things: it calls the destructor

and it deallocates the memory.

Q: What is
"placement new" and why would I use it?

A: There are many
uses of placement new. The simplest use is to place an object at a particular

location in memory. This is done
by supplying the place as a pointer parameter to the new part of

a new expression:

#include // Must #include this to
use "placement new"

#include "Fred.h" //
Declaration of class Fred

void someCode()

{

char memory[sizeof(Fred)]; //
Line #1

void* place = memory; // Line #2

Fred* f = new(place) Fred(); //
Line #3 (see "DANGER" below)

// The pointers f and place will
be equal

...

}

Line #1 creates an array of
sizeof(Fred) bytes of memory, which is big enough to hold a Fred

object. Line #2 creates a pointer
place that points to the first byte of this memory (experienced C

programmers will note that this
step was unnecessary; it's there only to make the code more

obvious). Line #3 essentially
just calls the constructor Fred::Fred(). The this pointer in the Fred

constructor will be equal to
place. The returned pointer f will therefore be equal to place.

ADVICE: Don't use this
"placement new" syntax unless you have to. Use it only when you
really

care that an object is placed at
a particular location in memory. For example, when your

hardware has a memory-mapped I/O
timer device, and you want to place a Clock object at that

memory location.

DANGER: You are taking sole
responsibility that the pointer you pass to the "placement new"

operator points to a region of
memory that is big enough and is properly aligned for the object

type that you're creating.
Neither the compiler nor the run-time system make any attempt to

check whether you did this right.
If your Fred class needs to be aligned on a 4 byte boundary but

you supplied a location that
isn't properly aligned, you can have a serious disaster on your hands

(if you don't know what
"alignment" means, please don't use the placement new syntax). You

have been warned.

You are also solely responsible
for destructing the placed object. This is done by explicitly

calling the destructor:

void someCode()

{

char memory[sizeof(Fred)];

void* p = memory;

Fred* f = new(p) Fred();

...

f->~Fred(); // Explicitly call
the destructor for the placed object

}

This is about the only time you
ever explicitly call a destructor.

Note: there is a much cleaner but
more sophisticated way of handling the destruction / deletion

situation.

Q: When I write a
destructor, do I need to explicitly call the destructors for my member objects?

A: No. You never
need to explicitly call a destructor (except with placement new).

A class's destructor (whether or
not you explicitly define one) automagically invokes the

destructors for member objects.
They are destroyed in the reverse order they appear within the

declaration for the class.

class Member {

public:

~Member();

...

};

class Fred {

public:

~Fred();

...

private:

Member x_;

Member y_;

Member z_;

};

Fred::~Fred()

{

// Compiler automagically calls
z_.~Member()

// Compiler automagically calls
y_.~Member()

// Compiler automagically calls
x_.~Member()

}

Q: When I write a
derived class's destructor, do I need to explicitly call the destructor for my

base class?

A: No. You never
need to explicitly call a destructor (except with placement new).

A derived class's destructor
(whether or not you explicitly define one) automagically invokes the

destructors for base class
subobjects. Base classes are destructed after member objects. In the

event of multiple inheritance,
direct base classes are destructed in the reverse order of their

appearance in the inheritance
list.

class Member {

public:

~Member();

...

};

class Base {

public:

virtual ~Base(); // A virtual
destructor

...

};

class Derived : public Base {

public:

~Derived();

...

private:

Member x_;

};

Derived::~Derived()

{

// Compiler automagically calls
x_.~Member()

// Compiler automagically calls
Base::~Base()

}

Note: Order dependencies with
virtual inheritance are trickier. If you are relying on order

dependencies in a virtual
inheritance hierarchy, you'll need a lot more information than is in this

FAQ.

Q: Is there any
difference between List x; and List x();?

A: A big
difference!

Suppose that List is the name of
some class. Then function f() declares a local List object called

x:

void f()

{

List x; // Local object named x
(of class List)

...

}

But function g() declares a
function called x() that returns a List:

void g()

{

List x(); // Function named x
(that returns a List)

...

}

Q: Can one
constructor of a class call another constructor of the same class to initialize
the this

object?

A: Nope.

Let's work an example. Suppose
you want your constructor Foo::Foo(char) to call another

constructor of the same class,
say Foo::Foo(char,int), in order that Foo::Foo(char,int) would help

initialize the this object.
Unfortunately there's no way to do this in C++.

Some people do it anyway.
Unfortunately it doesn't do what they want. For example, the line

Foo(x, 0); does not call
Foo::Foo(char,int) on the this object. Instead it calls Foo::Foo(char,int) to

initialize a temporary, local
object (not this), then it immediately destructs that temporary when

control flows over the ;.

class Foo {

public:

Foo(char x);

Foo(char x, int y);

...

};

Foo::Foo(char x)

{

...

Foo(x, 0); // this line does NOT
help initialize the this object!!

...

}

You can sometimes combine two
constructors via a default parameter:

class Foo {

public:

Foo(char x, int y=0); // this
line combines the two constructors

...

};

If that doesn't work, e.g., if
there isn't an appropriate default parameter that combines the two

constructors, sometimes you can
share their common code in a private init() member function:

class Foo {

public:

Foo(char x);

Foo(char x, int y);

...

private:

void init(char x, int y);

};

Foo::Foo(char x)

{

init(x, int(x) + 7);

...

}

Foo::Foo(char x, int y)

{

init(x, y);

...

}

void Foo::init(char x, int y)

{

...

}

BTW do NOT try to achieve this
via placement new. Some people think they can say new(this)

Foo(x, int(x)+7) within the body
of Foo::Foo(char). However that is bad, bad, bad. Please don't

write me and tell me that it
seems to work on your particular version of your particular compiler;

it's bad. Constructors do a bunch
of little magical things behind the scenes, but that bad

technique steps on those
partially constructed bits. Just say no.

Q: Is the default
constructor for Fred always Fred::Fred()?

A: No. A "default
constructor" is a constructor that can be called with no arguments. One

example of this is a constructor
that takes no parameters:

class Fred {

public:

Fred(); // Default constructor:
can be called with no args

...

};

Another example of a
"default constructor" is one that can take arguments, provided they
are

given default values:

class Fred {

public:

Fred(int i=3, int j=5); //
Default constructor: can be called with no args

...

};

Q: Which
constructor gets called when I create an array of Fred objects?

A: Fred's default
constructor (except as discussed below).

class Fred {

public:

Fred();

...

};

int main()

{

Fred a[10]; calls the default
constructor 10 times

Fred* p = new Fred[10]; calls the
default constructor 10 times

...

}

If your class doesn't have a
default constructor, you'll get a compile-time error when you attempt